Põhitoimingud PyTorchi tensoridega

Pohitoimingud Pytorchi Tensoridega



Tensorid on PyTorchi nurgakivi, mis pakub võimsat ja paindlikku andmestruktuuri süvaõppe numbrilisteks arvutusteks. Nagu NumPy massiivid, esindavad need mitmemõõtmelisi massiive, kuid täiendavate funktsioonide ja optimeeringutega, mis on spetsiaalselt loodud sügavate õppeülesannete jaoks. Kuna tensorid on PyTorchis arvuliste andmete salvestamise ja manipuleerimise peamised objektid, võivad neil olla erinevad mõõtmed, ulatudes skalaaridest (0-mõõtmelised tensorid) vektoriteni (ühemõõtmelised tensorid), maatriksite (kahemõõtmelised tensorid) ja kõrgemad. - mõõtmete tensorid.

Tensorite üks suurimaid eeliseid on nende võime sooritada tõhusaid matemaatilisi tehteid. Tensorid toetavad laia valikut aritmeetilisi toiminguid, sealhulgas elemendipõhiseid tehteid, nagu liitmine, lahutamine, korrutamine ja jagamine, ning maatriksitehinguid, nagu maatriksi korrutamine ja transponeerimine.

PyTorch pakub laiaulatuslikku funktsioonide ja meetodite komplekti tensorite manipuleerimiseks. Need hõlmavad toiminguid tensorite ümberkujundamiseks, konkreetsete elementide või alamtensorite eraldamiseks ja tensorite ühendamiseks või jagamiseks määratud mõõtmete järgi. Lisaks pakub PyTorch funktsioone tensorite indekseerimiseks, viilutamiseks ja levitamiseks, mis hõlbustab erineva kuju ja suurusega tensorite kasutamist.







Selles artiklis õpime põhilisi toiminguid PyTorchi tensoritega, uurime, kuidas luua tensoreid, teha põhitoiminguid, manipuleerida nende kuju ning teisaldada neid protsessori ja GPU vahel.



Tensorite loomine

PyTorchis saab tensoreid luua mitmel viisil. Uurime mõnda levinud meetodit.



Tensori loomiseks saame kasutada klassi “torch.Tensor” või funktsiooni “torch.tensor”. Vaatame mõnda näidet:





importida tõrvik

# Loo 1 - mõõtmete tensor Pythoni loendist
tensor_1d = tõrvik. tensor ( [ 1 , 2 , 3 , 4 , 5 ] )
printida ( tensor_1d )

# Loo 2 - mõõtmete tensor pesastatud Pythoni loendist
tensor_2d = tõrvik. tensor ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
printida ( tensor_2d )

# Looge konkreetse kujuga nullide tensor
nullid_tensor = tõrvik. nullid ( 3 , 2 )
printida ( nullid_tensor )

# Looge konkreetse kujuga tensor
ones_tensor = tõrvik. ühed ( 2 , 3 )
printida ( ones_tensor )

# Looge ühtlasest jaotusest juhuslike väärtustega tensor
juhuslik_tensor = tõrvik. rand ( 2 , 2 )
printida ( juhuslik_tensor )

Antud näidetes loome erineva kujuga tensorid ja initsialiseerime need erinevate väärtustega, nagu konkreetsed arvud, nullid, ühed või juhuslikud väärtused. Eelmise koodilõigu käivitamisel peaksite nägema sarnast väljundit:



Tensori operatsioonid

Kui meil on tensorid, saame nendega teha erinevaid toiminguid, nagu elemendipõhised aritmeetilised toimingud, maatrikstehted ja palju muud.

Elementaarsed aritmeetilised tehted

Elemendipõhised aritmeetilised toimingud võimaldavad meil teha arvutusi tensorite vahel elemendipõhiselt. Operatsioonis osalevad tensorid peaksid olema sama kujuga.

siin on mõned näidised:

importida tõrvik

# Loo tensorid
tensor1 = tõrvik. tensor ( [ 1 , 2 , 3 ] )
tensor2 = tõrvik. tensor ( [ 4 , 5 , 6 ] )

# Täiendus
lisamine = tensor1 + tensor2
printida ( 'Lisa:' , lisamine )

# Lahutamine
lahutamine = tensor1 - tensor2
printida ( 'Lahutamine:' , lahutamine )

# Korrutamine
korrutamine = tensor1 * tensor2
printida ( 'Korrutamine:' , korrutamine )

# Divisjon
jaotus = tensor1 / tensor2
printida ( 'Divisioon:' , jaotus )

Antud koodis teostame kahe tensori vahel liitmise, lahutamise, korrutamise ja jagamise toimingud, mille tulemuseks on arvutatud väärtustega uus tensor. Koodilõigu tulemus kuvatakse järgmiselt:

Maatriksioperatsioonid

PyTorch pakub tõhusaid maatriksoperatsioone tensorite jaoks, nagu maatriksi korrutamine ja transponeerimine. Need toimingud on eriti kasulikud selliste ülesannete puhul nagu lineaaralgebra ja närvivõrgu arvutused.

importida tõrvik

# Loo tensorid
tensor1 = tõrvik. tensor ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
tensor2 = tõrvik. tensor ( [ [ 5 , 6 ] , [ 7 , 8 ] ] )

# Maatrikskorrutamine
maatriksi_produkt = tõrvik. matt ( tensor1 , tensor2 )
printida ( 'Matrix toode:' , maatriksi_produkt )

# Maatriksi transponeerimine
maatriks_transponeerima = tensor1. T
printida ( 'Matrix Transpose:' , maatriks_transponeerima )

Antud näites teostame maatriksi korrutamise funktsiooni “torch.matmul” abil ja saame maatriksi transponeerimise atribuudi “.T” abil.

Tensori kujuga manipuleerimine

Lisaks tensorite toimingute tegemisele peame sageli nende kuju muutma, et need vastaksid konkreetsetele nõuetele. PyTorch pakub tensorite ümberkujundamiseks mitmeid funktsioone. Uurime mõnda neist funktsioonidest:

importida tõrvik

# Loo tensor
tensor = tõrvik. tensor ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )

# Kujundage tensor ümber
ümberkujundatud_tensor = tensor. ümber kujundada ( 3 , 2 )
printida ( 'Ümberkujundatud tensor:' , ümberkujundatud_tensor )

# Hankige tensori suurus
suurus = tensor. suurus ( )
printida ( 'Tensori suurus:' , suurus )

# Hankige elementide arv sisse tensor
elementide_arv = tensor. anna nimi ( )
printida ( 'Elementide arv:' , elementide_arv )

Esitatud koodis kujundame ümberkujundamise funktsiooni abil tensori ümber, leiame tensori suuruse suuruse meetodil ja saame tensori elementide koguarvu numeli meetodil.

Tensorite liigutamine CPU ja GPU vahel

PyTorch toetab graafikaprotsessori kiirendamist, mis võimaldab meil teha graafikakaartidel arvutusi, mis võivad märkimisväärselt kiirendada süvaõppe ülesandeid, vähendades treeninguaegu. Saame liigutada tensoreid CPU ja GPU vahel, kasutades meetodit 'kuni'.

Märge : Seda saab teha ainult siis, kui teie masinas on CUDA-ga NVIDIA GPU.

importida tõrvik

# Looge protsessoril tensor
tensor_cpu = tõrvik. tensor ( [ 1 , 2 , 3 ] )

# Kontrollima kui GPU on saadaval
kui tõrvik. erinev . on olemas ( ) :
# Liigutage tensor GPU-sse
tensor_gpu = tensor_cpu. juurde ( 'erinevad' )
printida ( 'Tensor on GPU:' , tensor_gpu )
muidu :
printida ( 'GPU pole saadaval.' )

Kaasasolevas koodis kontrollime, kas GPU on saadaval, kasutades torch.cuda.is_available(). Kui GPU on saadaval, teisaldame tensori CPU-lt GPU-le, kasutades “kuni” meetodit argumendiga “cuda”.

Järeldus

Põhiliste tensoritoimingute mõistmine on PyTorchiga töötamiseks ja süvaõppemudelite ehitamiseks ülioluline. Selles artiklis uurisime, kuidas luua tensoreid, sooritada põhitoiminguid, manipuleerida nende kuju ning teisaldada neid protsessori ja graafikaprotsessori vahel. Nende teadmistega saate nüüd PyTorchis tensoritega töötama hakata, arvutusi teha ja keerukaid süvaõppemudeleid luua. Tensorid on PyTorchis andmete esitamise ja manipuleerimise alus, mis võimaldab teil vallandada selle mitmekülgse masinõppe raamistiku kogu võimsuse.