t3f - library for working with Tensor Train decomposition built on top of TensorFlow

t3f is a library for working with Tensor Train decomposition. Tensor Train decomposition is a generalization of the low-rank decomposition from matrices to tensors (=multidimensional arrays), i.e. it’s a tool to efficiently work with structured tensors. t3f is implemented on top of TensorFlow which gives it a few nice properties:

  • GPU support – just run your model on a machine with a CUDA-enabled GPU and GPU version of the TensorFlow, and t3f will execute most of the operations on it.
  • Autodiff – TensorFlow can automatically compute the derivative of a function with respect to the underlying parameters of the Tensor Train decomposition (TT-cores). Also, if you are into the Riemannian optimization, you can automatically compute the Riemannian gradient of a given function. Don’t worry if you don’t know what it is :)
  • Batch processing – you can run a single vectorized operation on a set of Tensor Train objects.
  • Easy to use with Deep Learning, e.g. you can define a layer parametrized with a Tensor Train object and use it as a part of your favorite neural network implemented in TensorFlow.

Citation

If you use T3F in your research work, we kindly ask you to cite the paper describing this library

@article{JMLR:v21:18-008,
  author  = {Alexander Novikov and Pavel Izmailov and Valentin Khrulkov and Michael Figurnov and Ivan Oseledets},
  title   = {Tensor Train Decomposition on TensorFlow (T3F)},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {30},
  pages   = {1-7},
  url     = {http://jmlr.org/papers/v21/18-008.html}
}