The goal of TensorLy is to make tensor operations easy and accessible. I originally developed it to have minimum dependency and depend only on NumPy, SciPy and optionally on Matplotlib for plotting. However, as Deep Learning becomes more ubiquitous, we need better tools to i) combine tensor methods and Deep Learning and ii) run the algorithms at scale, on several machines and both CPU and GPU. It so happens that MXNet, in addition to shining in both of these areas, has an NDArray structure that is very similar to NumPy and aims at feature parity with it. Furthermore, its ability to use to define deep networks imperatively made it a prime candidate.
I therefore refactored TensorLy to accept both MXNet and NumPy as backends, which now allows to run tensor methods on CPU and GPU transparently and to seemlessly combine them with Deep Learning using MXNet's Gluon interface (for a great tutorial on Gluon and deep learning, check out this interactive book).
Here is a quick guide on getting started with the new version of TensorLy.
Install with pip
We want the latest version of MXNet, and the latest version of TensorLy:
pip install --pre mxnet pip install -U tensorly
Install from source
Install MXNet from source
To install from sources, you first want to clone the repository:
git clone --recursive https://github.com/apache/incubator-mxnet.git cd mxnet
Next, make the shared library:
cp make/osx.mk ./config.mk make -j$(sysctl -n hw.ncpu)
make -j $(nproc)
Install the python binding:
cd python pip install -e .
Install TensorLy from source
git clone https://github.com/tensorly/tensorly cd tensorly pip install -e .
That's it, you're ready to go!
Checking all is good
You can now check everything is working as expected in Python:
>>> import tensorly as tl Using mxnet backend. >>> print(tensorly.__version__) '0.2.0'