Perustoiminnot tensorien kanssa PyTorchissa

Perustoiminnot Tensorien Kanssa Pytorchissa



Tensorit ovat PyTorchin kulmakivi, joka tarjoaa tehokkaan ja joustavan tietorakenteen numeerisia laskelmia varten syväoppimisessa. Kuten NumPy-taulukot, ne edustavat moniulotteisia taulukoita, mutta niissä on lisäominaisuuksia ja optimointeja, jotka on suunniteltu erityisesti syvään oppimistehtäviin. Koska tensorit ovat ensisijaisia ​​objekteja numeeristen tietojen tallentamiseen ja käsittelyyn PyTorchissa, niillä voi olla erilaisia ​​ulottuvuuksia skalaareista (0-ulotteiset tensorit) vektoreihin (1-ulotteiset tensorit), matriiseihin (2-ulotteiset tensorit) ja korkeampiin. -ulotteiset tensorit.

Yksi tensoreiden suurimmista eduista on niiden kyky suorittaa tehokkaita matemaattisia operaatioita. Tensorit tukevat laajaa valikoimaa aritmeettisia operaatioita, mukaan lukien elementtikohtaiset toiminnot, kuten yhteen-, vähennys-, kerto- ja jakolasku, sekä matriisioperaatiot, kuten matriisin kertolasku ja transponointi.

PyTorch tarjoaa kattavan joukon toimintoja ja menetelmiä tensoreiden manipulointiin. Näitä ovat muun muassa tensorien uudelleenmuotoilu, tiettyjen elementtien tai alitensorien erottaminen ja tensorien yhdistäminen tai jakaminen määritettyjen mittojen mukaan. Lisäksi PyTorch tarjoaa toimintoja tensorien indeksointiin, viipalointiin ja lähettämiseen, mikä helpottaa erimuotoisten ja -kokoisten tensorien kanssa työskentelyä.







Tässä artikkelissa opimme perustoiminnot tensorien kanssa PyTorchissa, tutkimme kuinka luodaan tensoreja, suoritetaan perustoimintoja, muokataan niiden muotoa ja siirretään niitä CPU:n ja GPU:n välillä.



Tensorien luominen

PyTorchin tensorit voidaan luoda useilla tavoilla. Tutkitaan joitain yleisiä menetelmiä.



Tensorin luomiseksi voimme käyttää luokkaa 'torch.Tensor' tai 'torch.tensor'-funktiota. Katsotaanpa joitain esimerkkejä:





tuonti taskulamppu

# Luo 1 - ulottuvuustensori Python-luettelosta
tensori_1d = taskulamppu. tensori ( [ 1 , 2 , 3 , 4 , 5 ] )
Tulosta ( tensori_1d )

# Luo 2 - ulottuvuustensori sisäkkäisestä Python-luettelosta
tensori_2d = taskulamppu. tensori ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
Tulosta ( tensori_2d )

# Luo nollien tensori tietyllä muodolla
zeros_tensor = taskulamppu. nollia ( 3 , 2 )
Tulosta ( zeros_tensor )

# Luo tensori niistä, joilla on tietty muoto
ones_tensor = taskulamppu. yhdet ( 2 , 3 )
Tulosta ( ones_tensor )

# Luo tensori satunnaisilla arvoilla tasaisesta jakaumasta
satunnainen_tensori = taskulamppu. rand ( 2 , 2 )
Tulosta ( satunnainen_tensori )

Annetuissa esimerkeissä luodaan eri muotoisia tensoreja ja alustetaan ne erilaisilla arvoilla, kuten tietyillä luvuilla, nollia, ykkösiä tai satunnaisarvoja. Sinun pitäisi nähdä samanlainen tulos, kun suoritat edellisen koodinpätkän:



Tensoritoiminnot

Kun meillä on tensorit, voimme suorittaa niille erilaisia ​​operaatioita, kuten elementtikohtaisia ​​aritmeettisia operaatioita, matriisioperaatioita ja paljon muuta.

Elementtiviisas aritmeettiset operaatiot

Elementtikohtaisten aritmeettisten operaatioiden avulla voimme suorittaa tensorien välisiä laskelmia elementtikohtaisesti. Operaatioon osallistuvien tensorien tulee olla samanmuotoisia.

Tässä on joitain esimerkkejä:

tuonti taskulamppu

# Luo tensoreita
tensori1 = taskulamppu. tensori ( [ 1 , 2 , 3 ] )
tensori2 = taskulamppu. tensori ( [ 4 , 5 , 6 ] )

# Lisäys
lisäys = tensori1 + tensori2
Tulosta ( 'Lisäys:' , lisäys )

# Vähennys
vähennyslasku = tensori1 - tensori2
Tulosta ( 'Vähennyslasku:' , vähennyslasku )

# Kertominen
kertolasku = tensori1 * tensori2
Tulosta ( 'Kertokerta:' , kertolasku )

#Divisioona
jako = tensori1 / tensori2
Tulosta ( 'Divisioona:' , jako )

Annetussa koodissa suoritamme yhteen-, vähennys-, kerto- ja jakooperaatiot kahden tensorin välillä, jolloin saadaan uusi tensori lasketuilla arvoilla. Koodinpätkän tulos näkyy seuraavasti:

Matrix Operations

PyTorch tarjoaa tehokkaita matriisioperaatioita tensoreille, kuten matriisin kertolasku ja transponointi. Nämä toiminnot ovat erityisen hyödyllisiä tehtävissä, kuten lineaarialgebran ja hermoverkkojen laskennassa.

tuonti taskulamppu

# Luo tensoreita
tensori1 = taskulamppu. tensori ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
tensori2 = taskulamppu. tensori ( [ [ 5 , 6 ] , [ 7 , 8 ] ] )

# Matriisikerto
matriisituote = taskulamppu. matto ( tensori1 , tensori2 )
Tulosta ( 'Matrix-tuote:' , matriisituote )

# Matriisitransponointi
matriisi_transponoi = tensori1. T
Tulosta ( 'Matrix Transpose:' , matriisi_transponoi )

Esitetyssä esimerkissä suoritamme matriisin kertolaskun käyttämällä 'torch.matmul'-funktiota ja saamme matriisin transponoinnin käyttämällä '.T'-attribuuttia.

Tensorimuodon manipulointi

Sen lisäksi, että suoritamme operaatioita tensoreille, meidän on usein manipuloitava niiden muotoa tiettyjen vaatimusten mukaisesti. PyTorch tarjoaa useita toimintoja tensoreiden muokkaamiseen. Tutustutaanpa joihinkin näistä toiminnoista:

tuonti taskulamppu

# Luo tensori
tensori = taskulamppu. tensori ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )

# Muotoile tensori uudelleen
uudelleen muotoiltu_tensori = tensori. muotoilla uudelleen ( 3 , 2 )
Tulosta ( 'Uudelleen muotoiltu tensori:' , uudelleen muotoiltu_tensori )

# Hanki tensorin koko
koko = tensori. koko ( )
Tulosta ( 'Tensorin koko:' , koko )

# Hanki elementtien lukumäärä sisään tensori
elementtien_määrä = tensori. anna nimi ( )
Tulosta ( 'Elementtien lukumäärä:' , elementtien_määrä )

Annetussa koodissa muotoilemme tensorin uudelleen muotoilemalla, haemme tensorin koon kokomenetelmällä ja saamme tensorin elementtien kokonaismäärän numel-menetelmällä.

Tensorien siirtäminen CPU:n ja GPU:n välillä

PyTorch tukee GPU-kiihdytystä, jonka avulla voimme suorittaa laskutoimituksia näytönohjainkorteilla, mikä voi merkittävästi nopeuttaa syvän oppimisen tehtäviä lyhentämällä harjoitusaikoja. Voimme siirtää tensoreja CPU:n ja GPU:n välillä 'to'-menetelmällä.

Huomautus : Tämä voidaan tehdä vain, jos koneessasi on NVIDIA GPU, jossa on CUDA.

tuonti taskulamppu

# Luo tensori suorittimeen
tensor_cpu = taskulamppu. tensori ( [ 1 , 2 , 3 ] )

# Tarkistaa jos GPU on saatavilla
jos taskulamppu. eri . on käytettävissä ( ) :
# Siirrä tensori GPU:lle
tensor_gpu = tensor_cpu. to ( 'eri' )
Tulosta ( 'Tensor on GPU:' , tensor_gpu )
muu :
Tulosta ( 'GPU ei saatavilla.' )

Toimitetusta koodista tarkistamme, onko GPU saatavilla käyttämällä torch.cuda.is_available(). Jos GPU on saatavilla, siirrämme tensorin CPU:sta GPU:hun käyttämällä 'to'-menetelmää 'cuda'-argumentilla.

Johtopäätös

Perustensoritoimintojen ymmärtäminen on ratkaisevan tärkeää PyTorchin kanssa työskentelyssä ja syväoppimismallien rakentamisessa. Tässä artikkelissa tutkimme, kuinka luodaan tensoreja, suorittaa perustoimintoja, muokata niiden muotoa ja siirtää niitä CPU:n ja GPU:n välillä. Tämän tiedon avulla voit nyt aloittaa työskentelyn tensoreiden kanssa PyTorchissa, suorittaa laskelmia ja rakentaa kehittyneitä syväoppimismalleja. Tensorit toimivat perustana tietojen esittämiselle ja käsittelylle PyTorchissa, mikä antaa sinun vapauttaa tämän monipuolisen koneoppimiskehyksen täyden tehon.