PyTorch është një framework i mësimit të makinës bazuar në librarinë Torch, e përdorur për aplikacione të tilla si vizioni kompjuterik dhe përpunimi i gjuhës natyrore, i zhvilluar fillimisht nga Meta AI dhe tani pjesë e ombrellës së Fondacionit Linux. Është softuer falas dhe me burim të hapur i lëshuar nën licencën e modifikuar BSD. Megjithëse ndërfaqja Python është më e lëmuar dhe fokusi kryesor i zhvillimit, PyTorch ka gjithashtu një ndërfaqe C++.
Një numër i pjesëve të softuerit të të mësuarit të thellë janë ndërtuar mbi bazën PyTorch, duke përfshirë Tesla Autopilot, Pyro nga Uber, Transformers nga Hugging Face, PyTorch Lightning, dhe Catalyst.
PyTorch ofron dy veçori të nivelit të lartë:
- Llogaritja tensore (si NumPy) me përshpejtim të fortë nëpërmjet njësive të përpunimit grafik (GPU)
- Rrjetat nervore të thella të ndërtuara mbi një sistem diferencimi automatik të bazuar në shirit
Tensoret PyTorch
PyTorch përcakton një klasë të quajtur Tensor ( torch. Tensor) për të ruajtur dhe për të vepruar në vargje drejtkëndorë homogjenë shumëdimensionalë të numrave. Tensorët PyTorch janë të ngjashëm me Arrays në NumPy, por gjithashtu mund të menaxhohen në një GPU NVIDIA të aftë për CUDA. PyTorch gjithashtu ka zhvilluar mbështetje për platforma të tjera GPU, për shembull, ROCm të AMD dhe Metal Framework të Apple.
PyTorch mbështet nën-lloje të ndryshme të tensorëve.
Modulet
Moduli Autograd
PyTorch përdor një metodë të quajtur diferencim automatik. Një regjistrues regjistron se çfarë veprimesh janë kryer dhe më pas e riprodhon atë prapa për të llogaritur gradientët. Kjo metodë është veçanërisht e fuqishme kur ndërtohen rrjeta nervore për të kursyer kohë në një epokë,duke llogaritur diferencimin e parametrave në kalimin përpara.
Moduli Optim
torch.optim është një modul që zbaton algoritme të ndryshme optimizimi të përdorura për ndërtimin e rrjetave nervore. Shumica e metodave të përdorura zakonisht gjenden tashmë në këtë modul, kështu që nuk ka nevojë t'i ndërtoni ato nga e para.
nn modul
PyTorch autograd e bën të lehtë përcaktimin e grafeve llogaritës dhe marrjen e gradientëve, por autogradi i papërpunuar mund të jetë paksa i nivelit të ulët për përcaktimin e rrjetave të ndërlikuara nervore. Këtu mund të ndihmojë moduli nn. Moduli nn ofron shtresa dhe mjete për të krijuar lehtësisht një rrjetë nervore duke përcaktuar vetëm shtresat e rrjetit.
PyTorch gjithashtu përmban shumë nënmodule të tjera të dobishme, siç janë shërbimet e ngarkimit të të dhënave dhe funksionet e trajnimit të shpërndarë.