
Tensorly ist eine Python -Bibliothek, die darauf abzielt, Tensor -Lernen einfach und zugänglich zu machen. Es ermöglicht es, die Tensor -Zersetzung, das Tensor -Lernen und die Tensoralgebra problemlos durchzuführen. Das Backend -System ermöglicht es, Berechnungen mit Numpy, Pytorch, Jax, Tensorflow, Cupy oder Paddle und Run -Methoden in der Skala auf CPU oder GPU nahtlos durchzuführen.
Die einzige Voraussetzung besteht darin, Python 3 installieren zu lassen. Der einfachste Weg ist über die Anaconda -Verteilung.
| Mit PIP (empfohlen) | Mit Conda |
PIP Installation -U tensorisch
| Conda install -c Tensor Tensorly Installation
|
| Entwicklung (aus Git) | |
# Das Repository klonen
Git Clone https://github.com/tensorly/tensorly
CD Tensorly
# Installieren Sie im bearbeitbaren Modus mit `-e` oder gleichwertig` --edable`
PIP install -e.
| |
Hinweis: Tensory hängt standardmäßig von Numpy ab. Wenn Sie andere Backends verwenden möchten, müssen Sie diese Pakete separat installieren.
Ausführliche Anweisungen finden Sie in der Dokumentation.
Erstellen Sie einen kleinen Tensor der dritten Ordnung mit Größe 3 x 4 x 2 aus einem Numpy -Array und führen Sie einfache Operationen aus:
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 )Sie können auch zufällige Tensoren erstellen:
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' )Sie können auch Tensoren in TT-Format, Tucker usw. erstellen, siehe zufällige Tensoren.
Sie können das Backend ändern, um die Berechnung mit einem anderen Framework durchzuführen. Standardmäßig ist das Backend Numpy, aber Sie können die Berechnung auch mit Pytorch, Tensorflow, Jax, Cupy oder Paddle durchführen (muss zuerst installiert werden). Zum Beispiel wird nach dem Einstellen des Backends auf Pytorch die gesamte Berechnung von Pytorch durchgeführt, und Tensoren können an der GPU erstellt werden:
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 Das Anwenden der Tensor -Zerlegung ist einfach:
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 )Wir haben noch viele weitere Zerlegungen zur Verfügung, schauen Sie sie sich unbedingt an!
Dies ist nur eine sehr schnelle Einführung in einige der grundlegenden Merkmale von Tensorly. Weitere Informationen zum Erstengang finden Sie in der Benutzer-Führung und für eine detaillierte Referenz der Funktionen und deren Dokumentation finden Sie in der API
Wenn Sie einen Fehler sehen, öffnen Sie ein Problem oder noch besser eine Pull-Request!
Alle Beiträge sind willkommen! Wenn Sie also eine coole Tensor-Methode haben, die Sie hinzufügen möchten. Wenn Sie einen Fehler oder sogar einen Tippfehler oder einen Fehler in der Dokumentation erkennen, melden Sie ihn bitte und öffnen Sie noch besser eine Pull-Request für GitHub.
Bevor Sie Ihre Änderungen einreichen, sollten Sie sicherstellen, dass Ihr Code an unserem Stil-Guide hält. Der einfachste Weg, dies zu tun, ist mit Schwarz:
pip install black
black .Testen und Dokumentation sind ein wesentlicher Bestandteil dieses Pakets und alle Funktionen sind Uni-Tests und Dokumentationen ausgestattet.
Die Tests werden mit dem PyTest -Paket durchgeführt. Installieren Sie zuerst PyTest:
PIP Installieren Sie PyTest
Um den Test dann durchzuführen, laufen Sie einfach im Terminal aus:
PyTest -V tensorisch
Alternativ können Sie angeben, welches Backend Sie die Tests ausführen möchten:
Tensorly_backend = 'Numpy' PyTest -v Tensory
Wenn Sie Tensor in einem akademischen Papier verwenden, zitieren Sie bitte [1]:
@Article {Tensorly,
Autor = {Jean Kossaifi und Yannis Panagakis und Anima Anandkumar und Maja Pantic},
Titel = {Tensorly: Tensor Learning in Python},
Journal = {Journal of Machine Learning Research},
Jahr = {2019},
Volume = {20},
Nummer = {26},
Seiten = {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
| [1] | Jean Kossaifi, Yannis Panagakis, Anima Anandkumar und Maja Pantic, Tensorly: Tensor Learning in Python , Journal of Machine Learning Research (JMLR) , 2019, Band 20, Nummer 26. |