Kā lietot “torch.no_grad” programmā PyTorch?

Ka Lietot Torch No Grad Programma Pytorch



Gradientu aprēķināšana neironu tīkla slāņiem ir PyTorch sistēmas iebūvēta funkcija. Lietotāji var novērtēt savienojumu starp blakus esošajiem slāņiem, kad tiek aprēķināti gradienti atpakaļgaitā. Tomēr tas apgrūtina aparatūru, jo ir jāapstrādā liels datu apjoms, un šajā gadījumā torch.no_grad ” metodi var izmantot, lai apturētu gradienta aprēķinu, kur vien nepieciešams.

Šajā emuārā mēs apspriedīsim, kā izmantot torch.no_grad ” metode PyTorch.

Kas ir PyTorch metode “torch.no_grad”?

' torch.no_grad ” metode tiek izmantota konteksta pārvaldībai PyTorch izstrādes ietvaros. Tās mērķis ir apturēt gradientu aprēķināšanu savienojumam starp nākamajiem dziļās mācīšanās modeļa slāņiem. Šīs metodes lietderība ir tāda, ja konkrētajā modelī gradienti nav nepieciešami, tos var atspējot, lai piešķirtu vairāk aparatūras resursu modeļa apmācības cilpas apstrādei.







Kā PyTorch izmantot metodi “torch.no_grad”?

Gradienti tiek aprēķināti PyTorch atpakaļgaitas ietvaros. Pēc noklusējuma PyTorch ir aktivizēta automātiska diferenciācija visiem mašīnmācīšanās modeļiem. Gradienta skaitļošanas deaktivizēšana ir būtiska izstrādātājiem, kuriem nav pietiekami daudz aparatūras apstrādes resursu.



Veiciet tālāk norādītās darbības, lai uzzinātu, kā izmantot torch.no_grad ” metode, lai atspējotu gradientu aprēķināšanu programmā PyTorch:







1. darbība. Palaidiet Colab IDE

Google Colaboratory ir lieliska platformas izvēle projektu izstrādei, izmantojot PyTorch ietvaru, jo tai ir paredzēti GPU. Dodieties uz Colab tīmekļa vietne un atveriet ' Jauna piezīmju grāmatiņa ' kā parādīts:



2. darbība. Instalējiet un importējiet Torch bibliotēku

Visas PyTorch funkcionalitātes ir iekapsulētas ar ' lāpa ” bibliotēka. Tā uzstādīšana un importēšana ir būtiska pirms darba uzsākšanas. ' !pip Python instalācijas pakotne tiek izmantota bibliotēku instalēšanai, un tā tiek importēta projektā, izmantojot imports ” komanda:

!pip uzstādīt lāpu
importa lāpa

3. darbība: definējiet PyTorch tensoru ar gradientu

Pievienojiet projektam PyTorch tensoru, izmantojot ' torch.tensor() ” metode. Pēc tam piešķiriet tam derīgu gradientu, izmantojot ' prasa_grad=Tiesa ” metodi, kā parādīts tālāk esošajā kodā:

A = torch.tensor ([5.0], prasa_grad = True)

4. darbība: izmantojiet metodi “torch.no_grad”, lai noņemtu gradientu

Pēc tam noņemiet gradientu no iepriekš definētā tenzora, izmantojot ' torch.no_grad ” metode:

ar torch.no_grad():
B = A**2 + 16

Iepriekš minētais kods darbojas šādi:

  • ' no_grad() ' metode tiek izmantota ' ar ” cilpa.
  • Katram cilpas tensoram ir noņemts gradients.
  • Visbeidzot, definējiet parauga aritmētisko aprēķinu, izmantojot iepriekš definēto tensoru, un piešķiriet to ' B ” mainīgais, kā parādīts iepriekš:

5. darbība: pārbaudiet gradienta noņemšanu

Pēdējais solis ir pārbaudīt tikko paveikto. Gradients no tenzora A ' tika noņemts, un tas ir jāpārbauda izvadē, izmantojot ' drukāt () ” metode:

print('Gradienta aprēķināšana ar torch.no_grad:', A.grad)
print('\nSākotnējais tensors: ', A)
print('\nAritmētiskā aprēķina paraugs: ', B)

Iepriekš minētais kods darbojas šādi:

  • ' grad 'metode dod mums tenzora gradientu' A ”. Tālāk esošajā izvadā tas netiek rādīts, jo gradients ir noņemts, izmantojot ' torch.no_grad ” metode.
  • Sākotnējais tensors joprojām parāda, ka tam ir gradients, kā redzams no ' prasa_grad=Tiesa ” paziņojums izvadā.
  • Visbeidzot, parauga aritmētiskais aprēķins parāda iepriekš definētā vienādojuma rezultātu:

Piezīme : mūsu Colab piezīmju grāmatiņai varat piekļūt šeit saite .

Pro-Tip

' torch.no_grad ” metode ir ideāla, ja gradienti nav nepieciešami vai ja ir nepieciešams samazināt aparatūras apstrādes slodzi. Vēl viena šīs metodes izmantošana ir secinājumu veikšana, jo modelis tiek izmantots tikai prognožu veikšanai, pamatojoties uz jauniem datiem. Tā kā apmācība nav saistīta, ir pilnīgi saprātīgi vienkārši atspējot gradientu aprēķināšanu.

Veiksmi! Mēs esam parādījuši, kā izmantot metodi “torch.no_grad”, lai atspējotu gradientus programmā PyTorch.

Secinājums

Izmantojiet ' torch.no_grad ” metodi PyTorch, definējot to ar ” cilpa un visi tajā ietvertie tenzori tiks noņemti. Tas uzlabos apstrādes ātrumu un novērsīs gradientu uzkrāšanos apmācības ciklā. Šajā emuārā mēs esam parādījuši, kā šis ' torch.no_grad ” metodi var izmantot, lai atspējotu atlasīto tensoru gradientus programmā PyTorch.