AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
TensorLy: Tensor Learning in Python.
翻譯準備中
開發工具Python · ShellGitHub @tensorly自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗.. image:: https://badge.fury.io/py/tensorly.svg :target: https://badge.fury.io/py/tensorly
.. image:: https://anaconda.org/tensorly/tensorly/badges/version.svg
:target: https://anaconda.org/tensorly/tensorly
.. image:: https://github.com/tensorly/tensorly/actions/workflows/test.yml/badge.svg?branch=main :target: https://github.com/tensorly/tensorly/actions/workflows/test.yml
.. image:: https://codecov.io/gh/tensorly/tensorly/branch/master/graph/badge.svg?token=mnZ234sGSA :target: https://codecov.io/gh/tensorly/tensorly
.. image:: https://img.shields.io/badge/Slack-join-brightgreen :target: https://join.slack.com/t/tensorly/shared_invite/zt-wqnts2sk-wbiRX6ml~Xt6~GDYWRPFfg
TensorLy is a Python library that aims at making tensor learning simple and accessible. It allows to easily perform tensor decomposition, tensor learning and tensor algebra. Its backend system allows to seamlessly perform computation with NumPy, PyTorch, JAX, TensorFlow, CuPy or Paddle, and run methods at scale on CPU or GPU.
The only pre-requisite is to have Python 3 installed. The easiest way is via the Anaconda distribution <https://www.anaconda.com/download/>_.
+-------------------------------------------+---------------------------------------------------+
| With pip (recommended) | With conda |
+-------------------------------------------+---------------------------------------------------+
| | |
| .. code:: | .. code:: |
| | |
| pip install -U tensorly | conda install -c tensorly tensorly |
| | |
| | |
+-------------------------------------------+---------------------------------------------------+
| Development (from git) |
+-------------------------------------------+---------------------------------------------------+
| |
| .. code:: |
| |
| # clone the repository |
| git clone https://github.com/tensorly/tensorly |
| cd tensorly |
| # Install in editable mode with -e or, equivalently, --editable |
| pip install -e . |
| |
+-----------------------------------------------------------------------------------------------+
Note: TensorLy depends on NumPy by default. If you want to use other backends, you will need to install these packages separately.
For detailed instruction, please see the documentation <http://tensorly.org/dev/installation.html>_.
Create a small third order tensor of size 3 x 4 x 2, from a NumPy array and perform simple operations on it:
.. code:: python
import tensorly as tl import numpy as np
tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), dtype=tl.float64) unfolded = tl.unfold(tensor, mode=0) tl.fold(unfolded, mode=0, shape=tensor.shape)
You can also create random tensors:
.. code:: python
from tensorly import random
tensor = random.random_tensor((3, 4, 2))
cp_tensor = random.random_tensor(shape=(3, 4, 2), rank='same')
You can also create tensors in TT-format, Tucker, etc, see random tensors <http://tensorly.org/stable/modules/api.html#module-tensorly.random>_.
You can change the backend to perform computation with a different framework. By default, the backend is NumPy, but you can also perform the computation using PyTorch, TensorFlow, JAX, CuPy or Paddle (requires to have installed them first). For instance, after setting the backend to PyTorch, all the computation is done by PyTorch, and tensors can be created on GPU:
.. code:: python
tl.set_backend('pytorch') # Or 'numpy', 'tensorflow', 'cupy' or 'jax' tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), device='cuda:0') type(tensor) # torch.Tensor
Applying tensor decomposition is easy:
.. code:: python
from tensorly.decomposition import tucker
tucker_tensor = tucker(tensor, rank=[2, 2, 2])
tl.tucker_to_tensor(tucker_tensor)
We have many more decompositions <http://tensorly.org/stable/modules/api.html#module-tensorly.decomposition>_ available, be sure to check them out!
This is just a very quick introduction to some of the basic features of TensorLy.
For more information on getting started, checkout the user-guide <http://tensorly.org/dev/user_guide/index.html>_ and for a detailed reference of the functions and their documentation, refer to
the API <http://tensorly.org/dev/modules/api.html>_
If you see a bug, open an issue <https://github.com/tensorly/tensorly/issues>, or better yet, a pull-request <https://github.com/tensorly/tensorly/pulls>!
All contributions are welcome! So if you have a cool tensor method you want to add, if you spot a bug or even a typo or mistake in the documentation, please report it, and even better, open a Pull-Request on GitHub <https://github.com/tensorly/tensorly/>_.
Before you submit your changes, you should make sure your code adheres to our style-guide. The easiest way to do this is with black:
.. code:: bash
pip install black black .
Testing and documentation are an essential part of this package and all functions come with uni-tests and documentation.
The tests are ran using the pytest package.
First install pytest::
pip install pytest
Then to run the test, simply run, in the terminal:
.. code::
pytest -v tensorly
Alternatively, you can specify for which backend you wish to run the tests:
.. code::
TENSORLY_BACKEND='numpy' pytest -v tensorly
If you use TensorLy in an academic paper, please cite [1]_::
@article{tensorly,
author = {Jean Kossaifi and Yannis Panagakis and Anima Anandkumar and Maja Pantic},
title = {TensorLy: Tensor Learning in Python},
journal = {Journal of Machine Learning Research},
year = {2019},
volume = {20},
number = {26},
pages = {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
.. [1] Jean Kossaifi, Yannis Panagakis, Anima Anandkumar and Maja Pantic, TensorLy: Tensor Learning in Python, Journal of Machine Learning Research (JMLR), 2019, volume 20, number 26.