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}
}