
Tensorly adalah perpustakaan Python yang bertujuan membuat pembelajaran tensor sederhana dan mudah diakses. Ini memungkinkan untuk dengan mudah melakukan dekomposisi tensor, pembelajaran tensor dan aljabar tensor. Sistem backend -nya memungkinkan untuk melakukan perhitungan dengan mulus dengan Numpy, Pytorch, Jax, TensorFlow, Cupy atau Dayung, dan menjalankan metode pada skala pada CPU atau GPU.
Satu-satunya prasyarat adalah menginstal Python 3 . Cara termudah adalah melalui distribusi Anaconda.
| Dengan pip (disarankan) | Dengan conda |
Pip menginstal -u tarik
| conda instal -c tarik tarik
|
| Pengembangan (dari git) | |
# klon repositori
Git Clone https://github.com/tensorly/tensorly
CD tarik
# Instal dalam mode yang dapat diedit dengan `-e` atau, setara,`-editing`
Pip Instal -e.
| |
CATATAN: Dengan tarik tergantung pada numpy secara default. Jika Anda ingin menggunakan backend lain, Anda harus menginstal paket -paket ini secara terpisah.
Untuk instruksi terperinci, silakan lihat dokumentasinya.
Buat tensor orde ketiga kecil dengan ukuran 3 x 4 x 2, dari array numpy dan lakukan operasi sederhana di atasnya:
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 )Anda juga dapat membuat tensor acak:
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' )Anda juga dapat membuat tensor dalam format TT, tucker, dll, lihat tensor acak.
Anda dapat mengubah backend untuk melakukan perhitungan dengan kerangka kerja yang berbeda. Secara default, backendnya numpy, tetapi Anda juga dapat melakukan perhitungan menggunakan Pytorch, TensorFlow, Jax, Cupy atau Paddle (perlu menginstalnya terlebih dahulu). Misalnya, setelah mengatur backend ke Pytorch, semua perhitungan dilakukan oleh Pytorch, dan tensor dapat dibuat di 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 Menerapkan dekomposisi tensor itu mudah:
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 )Kami memiliki lebih banyak dekomposisi yang tersedia, pastikan untuk memeriksanya!
Ini hanyalah pengantar yang sangat cepat untuk beberapa fitur dasar Tensorly. Untuk informasi lebih lanjut tentang memulai, periksa panduan pengguna dan untuk referensi terperinci dari fungsi dan dokumentasinya, lihat API
Jika Anda melihat bug, buka masalah, atau lebih baik lagi, permintaan tarik!
Semua kontribusi dipersilakan! Jadi, jika Anda memiliki metode tensor keren yang ingin Anda tambahkan, jika Anda melihat bug atau bahkan kesalahan ketik atau kesalahan dalam dokumentasi, silakan laporkan, dan bahkan lebih baik, buka permintaan tarik di GitHub.
Sebelum Anda mengirimkan perubahan, Anda harus memastikan kode Anda mematuhi panduan gaya kami. Cara termudah untuk melakukan ini dengan hitam:
pip install black
black .Pengujian dan dokumentasi adalah bagian penting dari paket ini dan semua fungsi dilengkapi dengan uni-test dan dokumentasi.
Tes dijalankan menggunakan paket pytest. Instal Pytest Pertama:
Pip Instal Pytest
Kemudian untuk menjalankan tes, cukup jalankan, di terminal:
pytest -v tegang
Atau, Anda dapat menentukan backend mana Anda ingin menjalankan tes:
Tensorly_backend = 'numpy' pytest -v tarik
Jika Anda menggunakan tarik dalam makalah akademik, silakan kutip [1]:
@Article {tensorly,
penulis = {Jean Kossaifi dan Yannis Panagakis dan Anima Anandkumar dan Maja Pantic},
title = {tensorly: Tensor Learning in Python},
Journal = {Journal of Machine Learning Research},
tahun = {2019},
volume = {20},
angka = {26},
halaman = {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
| [1] | Jean Kossaifi, Yannis Panagakis, Anima Anandkumar dan Maja Pantic, tarik: Tensor Learning in Python , Journal of Machine Learning Research (JMLR) , 2019, Volume 20, Nomor 26. |