
Tensorly เป็นห้องสมุด Python ที่มีจุดมุ่งหมายในการทำให้การเรียนรู้แบบเทนเซอร์ง่ายและเข้าถึงได้ง่าย ช่วยให้สามารถทำการสลายตัวแบบเทนเซอร์ได้อย่างง่ายดายการเรียนรู้เทนเซอร์และพีชคณิตเทนเซอร์ ระบบแบ็กเอนด์ของมันช่วยให้สามารถทำการคำนวณได้อย่างราบรื่นด้วย numpy, pytorch, jax, tensorflow, cupy หรือ paddle และวิธีการเรียกใช้ในระดับบน CPU หรือ GPU
สิ่งที่ต้องทำล่วงหน้าเพียงอย่างเดียวคือการติดตั้ง Python 3 วิธีที่ง่ายที่สุดคือผ่านการกระจาย Anaconda
| ด้วย PIP (แนะนำ) | กับ Conda |
PIP Install -U Tensorly
| Conda Install -C Tensorly Tensorly
|
| การพัฒนา (จาก Git) | |
# โคลนที่เก็บ
git clone https://github.com/tensorly/tensorly
ซีดีเทนเซอร์
# ติดตั้งในโหมดแก้ไขได้ด้วย `-e` หรือเทียบเท่า`-editable '
การติดตั้ง PIP -E
| |
หมายเหตุ: Tensorly ขึ้นอยู่กับ numpy โดยค่าเริ่มต้น หากคุณต้องการใช้แบ็กเอนด์อื่น ๆ คุณจะต้องติดตั้งแพ็คเกจเหล่านี้แยกกัน
สำหรับคำแนะนำโดยละเอียดโปรดดูเอกสาร
สร้างเทนเซอร์ลำดับที่สามขนาดเล็กขนาด 3 x 4 x 2 จากอาร์เรย์ numpy และดำเนินการง่าย ๆ บน:
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 ฯลฯ ดู Tensors แบบสุ่ม
คุณสามารถเปลี่ยนแบ็กเอนด์เพื่อทำการคำนวณด้วยเฟรมเวิร์กที่แตกต่างกัน โดยค่าเริ่มต้นแบ็กเอนด์นั้นเป็น 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
ก่อนที่คุณจะส่งการเปลี่ยนแปลงของคุณคุณควรตรวจสอบให้แน่ใจว่ารหัสของคุณปฏิบัติตามแนวทางของเรา วิธีที่ง่ายที่สุดในการทำเช่นนี้คือสีดำ:
pip install black
black .การทดสอบและเอกสารเป็นส่วนสำคัญของแพ็คเกจนี้และฟังก์ชั่นทั้งหมดมาพร้อมกับการทดสอบแบบ Uni และเอกสารประกอบ
การทดสอบดำเนินการโดยใช้แพ็คเกจ pytest ติดตั้ง pytest ครั้งแรก:
PIP ติดตั้ง pytest
จากนั้นเพื่อเรียกใช้การทดสอบเพียงแค่เรียกใช้ในเทอร์มินัล:
pytest -v tensorly
หรือคุณสามารถระบุแบ็กเอนด์ที่คุณต้องการเรียกใช้การทดสอบ:
tensorly_backend = 'numpy' pytest -v tensorly
หากคุณใช้ Tensorly ในบทความวิชาการโปรดอ้างอิง [1]::
@article {tensorly,
ผู้แต่ง = {Jean Kossaifi และ Yannis Panagakis และ Anima Anandkumar และ Maja Pantic}
title = {tensorly: การเรียนรู้เทนเซอร์ใน Python}
วารสาร = {วารสารการวิจัยการเรียนรู้ของเครื่อง}
ปี = {2019},,
volume = {20}
number = {26}
หน้า = {1-6}
url = {http://jmlr.org/papers/v20/18-277.html}
-
| [1] | Jean Kossaifi, Yannis Panagakis, Anima Anandkumar และ Maja Pantic, Tensorly: การเรียนรู้ของ Tensor ใน Python , วารสารการวิจัยการเรียนรู้ของเครื่องจักร (JMLR) , 2019, เล่ม 20, หมายเลข 26 |