
Tensorly是一个Python库,旨在使张量学习变得简单易懂。它允许轻松执行张量分解,张量学习和张量代数。它的后端系统允许使用Numpy,Pytorch,Jax,Tensorflow,Cupy或Paddle无缝执行计算,并在CPU或GPU上按大规模运行方法。
唯一的先决条件是安装Python 3 。最简单的方法是通过Anaconda分布。
| 使用PIP (推荐) | 与Conda |
pip安装-u张力
| conda安装-c张力张力
|
| 开发(来自git) | |
#克隆存储库
git克隆https://github.com/tensorly/tensorly
CD张力
#以`-e`或等效地安装可编辑模式安装`` -
PIP安装-e。
| |
注意:默认情况下,张力依赖于numpy。如果要使用其他后端,则需要单独安装这些软件包。
有关详细说明,请参阅文档。
从numpy阵列中创建一个小尺寸3 x 4 x 2的小三阶张量,然后对其进行简单的操作:
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 )您还可以创建随机张量:
from tensorly import random
# A random tensor
tensor = random . random_tensor (( 3 , 4 , 2 ))
# A random CP tensor in factorized form
cp_tensor = random . random_tensor ( shape = ( 3 , 4 , 2 ), rank = 'same' )您还可以在TT-Format,Tucker等中创建张量,请参阅随机张量。
您可以更改后端以使用不同的框架执行计算。默认情况下,后端是Numpy,但是您也可以使用Pytorch,Tensorflow,Jax,Cupy或Paddle执行计算(需要先安装它们)。例如,将后端设置为Pytorch后,所有计算都是由Pytorch完成的,并且可以在GPU上创建张量:
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 应用张量分解很容易:
from tensorly . decomposition import tucker
# Apply Tucker decomposition
tucker_tensor = tucker ( tensor , rank = [ 2 , 2 , 2 ])
# Reconstruct the full tensor from the decomposed form
tl . tucker_to_tensor ( tucker_tensor )我们还有更多的分解,请务必检查它们!
这只是对Tensorly的一些基本功能的快速介绍。有关入门的更多信息,请查看用户指南以及有关功能及其文档的详细参考,请参阅API
如果您看到一个错误,请打开问题,或者更好的是,请进行抽签!
欢迎所有贡献!因此,如果您要添加一个凉爽的张量方法,如果您在文档中发现错误甚至错误或错误,请报告它,甚至更好,在GitHub上打开plup-要求。
在提交更改之前,应确保您的代码遵守我们的样式指南。最简单的方法是与黑色:
pip install black
black .测试和文档是此软件包的重要组成部分,所有功能都带有Uni检验和文档。
使用PYTEST软件包进行测试。首先安装pytest:
PIP安装pytest
然后,要运行测试,只需在终端中运行:
pytest -v tensorly
另外,您可以指定要运行测试的后端:
tensorly_backend ='numpy'pytest -v tensorly
如果您在学术论文中使用张力,请引用[1]:
@article {tensorly,
作者= {Jean Kossaifi和Yannis Panagakis和Anima Anandkumar和Maja Pantic},
title = {tensorly:python中的张量学习},
日记= {机器学习研究期刊},
年= {2019},
音量= {20},
数字= {26},
页= {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
| [1] | Jean Kossaifi,Yannis Panagakis,Anima Anandkumar和Maja Pantic, Tensorly:Python中的张量学习,机器学习研究杂志(JMLR) ,2019年,2019年,第20卷,编号26。 |