
Tensorly é uma biblioteca Python que visa tornar o tensor de aprendizado simples e acessível. Permite executar facilmente decomposição tensor, aprendizado tensorado e álgebra tensorial. Seu sistema de back -end permite executar perfeitamente computação com métodos Numpy, Pytorch, Jax, Tensorflow, Cupy ou Paddle e executam em escala na CPU ou GPU.
O único pré-requisito é instalar o Python 3 . A maneira mais fácil é através da distribuição da Anaconda.
| Com pip (recomendado) | Com conda |
pip install -u tensorly
| conda install -c tensorly tensorly
|
| Desenvolvimento (do Git) | |
# clonar o repositório
clone git https://github.com/tensorly/tensorly
CD tensorly
# Instale no modo editável com `-e` ou, equivalentemente,` --editable`
pip install -e.
| |
Nota: Depende tensorly do Numpy por padrão. Se você deseja usar outros back -ends, precisará instalar esses pacotes separadamente.
Para obter instruções detalhadas, consulte a documentação.
Crie um pequeno tensor de terceira ordem do tamanho 3 x 4 x 2, a partir de uma matriz Numpy e execute operações simples nele:
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 )Você também pode criar tensores aleatórios:
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' )Você também pode criar tensores em formato TT, Tucker, etc, ver tensores aleatórios.
Você pode alterar o back -end para executar o cálculo com uma estrutura diferente. Por padrão, o back -end é Numpy, mas você também pode executar o cálculo usando Pytorch, Tensorflow, Jax, Cupy ou Paddle (exige que os instale primeiro). Por exemplo, depois de definir o back -end para Pytorch, todo o cálculo é feito por Pytorch, e os tensores podem ser criados na 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 A aplicação de decomposição do tensor é fácil:
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 )Temos muito mais decomposições disponíveis, não deixe de conferir!
Esta é apenas uma introdução muito rápida a alguns dos recursos básicos do Tensorly. Para obter mais informações sobre como começar, consulte o guia do usuário e para uma referência detalhada das funções e sua documentação, consulte a API
Se você vir um bug, abra um problema ou, melhor ainda, uma solicitação de tração!
Todas as contribuições são bem -vindas! Portanto, se você tiver um método de tensor legal que deseja adicionar, se você encontrar um bug ou mesmo um erro de digitação ou erro na documentação, denunciá-lo e, melhor ainda, abra uma solicitação de tração no Github.
Antes de enviar suas alterações, verifique se o seu código adere ao nosso estilo de estilo. A maneira mais fácil de fazer isso é com o preto:
pip install black
black .Testes e documentação são uma parte essencial deste pacote e todas as funções vêm com testes e documentação uni.
Os testes são executados usando o pacote pytest. Primeiro Instale Pytest:
PIP Instale Pytest
Então, para executar o teste, basta executar, no terminal:
pytest -V tensoramente
Como alternativa, você pode especificar para qual back -end deseja executar os testes:
Tensorly_backend = 'Numpy' pytest -v
Se você usar tensorly em um artigo acadêmico, cite [1]:
@Article {Tensorly,
Autor = {Jean Kossaifi e Yannis Panagakis e Anima Anandkumar e Maja Pantic},
Title = {Tensorly: Tensor Learning in Python},
Journal = {Journal of Machine Learning Research},
ano = {2019},
volume = {20},
número = {26},
páginas = {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
| [1] | Jean Kossaifi, Yannis Panagakis, Anima Anandkumar e Maja Pantic, Tensorly: Tensor Learning in Python , Journal of Machine Learning Research (JMLR) , 2019, volume 20, número 26. |