PyTorch | |
---|---|
Tyyppi | Kone- ja syväoppimiskirjasto |
Tekijä | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan |
Sisään kirjoitettu | Python , C++ , CUDA |
Käyttöjärjestelmä | Linux , macOS , Windows |
Ensimmäinen painos | lokakuuta 2016 |
uusin versio |
|
Lisenssi | BSD |
Verkkosivusto | pytorch.org _ |
Mediatiedostot Wikimedia Commonsissa |
PyTorch on avoimen lähdekoodin koneoppimiskehys Pythonille , joka on rakennettu Torchin [2] [3] [4] päälle . Käytetään erilaisiin tehtäviin: tietokonenäköön , luonnollisen kielen käsittelyyn . [5] Kehittänyt ensisijaisesti tekoälyryhmä Facebook [6] [7] [8] . Lisäksi tämän kehyksen ympärille on rakennettu ekosysteemi [9] , joka koostuu useista ulkopuolisten ryhmien kehittämistä kirjastoista: PyTorch Lightning ja Fast.ai [10] , jotka yksinkertaistavat koulutusmallien prosessia, Pyro , todennäköisyyspohjaisen ohjelmoinnin moduuli , Uberilta [11] Flair [12] luonnollisen kielen käsittelyyn ja Catalyst [13] DL- ja RL - mallien koulutukseen .
PyTorch tarjoaa kaksi pääasiallista korkean tason mallia: [14]
Tensorit eivät ole mitään erikoisia, ne ovat vain moniulotteisia taulukoita. PyTorch-tensorit (Tensorit) ovat samanlaisia kuin NumPy-paketin taulukot , mutta niitä voidaan lisäksi käsitellä videokiihdyttimillä. PyTorch tukee erilaisia tensoreita. [viisitoista]
PyTorch käyttää automaattista erottelumenetelmää. Eteenpäin tehdyt laskelmat tallennetaan, minkä jälkeen ne toistetaan gradientien laskemiseksi ( backpropagation ). Tämä menetelmä on erityisen hyödyllinen hermoverkkojen rakentamisessa, koska sen avulla voit laskea differentiaaliparametrien korjaukset samanaikaisesti eteenpäin kulkemisen kanssa.
torch.optim on moduuli, joka toteuttaa useita neuroverkkojen rakentamiseen käytettyjä optimointialgoritmeja. Suurin osa yleisimmin käytetyistä menetelmistä on otettu käyttöön.
PyTorch autograd -moduulin avulla on helppo määrittää laskennallisia kaavioita ja työskennellä gradienttien kanssa, mutta se voi olla liian alhainen monimutkaisten hermoverkkojen määrittelemiseen. Korkeamman tason abstraktio tällaisille sovelluksille on nn-moduuli.
Seuraava koodi havainnollistaa kirjaston toimivuutta yksinkertaisella esimerkillä: [16] [17]
tuonti taskulamppu dtype = taskulamppu . kellua laite = taskulamppu . laite ( "cpu" ) # Tämä suorittaa kaikki suorittimen laskelmat # laite = torch.device("cuda:0") # Tämä suorittaa kaikki laskelmat GPU:ssa # Tensorin luominen ja tensorin täyttäminen satunnaisluvuilla a = taskulamppu . randn ( 2 , 3 , laite = laite , dtype = dtype ) tulosta ( a ) # Tensorin A tulos # Lähtö: tensori([[-1.1884, 0.8498, -1.7129], # [-0,8816, 0,1944, 0,5847]]) # Tensorin luominen ja tensorin täyttäminen satunnaisluvuilla b = taskulamppu . randn ( 2 , 3 , laite = laite , dtype = dtype ) tulosta ( b ) # Tensorin B lähtö # Lähtö: tensori([[ 0,7178, -0,8453, -1,3403], # [ 1,3262, 1,1512, -1,7070]]) print ( a * b ) # Kahden tensorin kertolaskutulos # Lähtö: tensori([[-0,8530, -0,7183, 2,58], # [-1,1692, 0,2238, -0,9981]]) tulosta ( a . summa ()) # Tensorin A kaikkien elementtien summan tulos # Lähtö: tensori(-2,1540) print ( a [ 1 , 2 ] ) # Elementin tulostus toisen rivin kolmannessa sarakkeessa # Lähtö: tensori(0,5847) print ( a . min ()) # Minimiarvon tulos tensorissa A # Lähtö: tensori(-1,7129) ![]() | |
---|---|
Valokuva, video ja ääni | |
Temaattiset sivustot |
Syväoppimisohjelmat | |
---|---|
ilmainen ohjelmisto |
|
Ei-ilmainen ohjelmisto |
|
|