Cum se utilizează „torch.no_grad” în PyTorch?

Cum Se Utilizeaza Torch No Grad In Pytorch



Calculul gradienților pentru straturile unei rețele neuronale este o caracteristică încorporată a cadrului PyTorch. Utilizatorii pot măsura conexiunea dintre straturile adiacente atunci când se calculează gradienții în trecerea înapoi. Cu toate acestea, acest lucru afectează hardware-ul din cauza volumelor mari de date care trebuie procesate și, în acest caz, „ torch.no_grad ” poate fi folosită pentru a opri calculul gradientului oriunde este necesar.

În acest blog, vom discuta despre cum să folosiți „ torch.no_grad ” în PyTorch.

Ce este metoda „torch.no_grad” în PyTorch?

torch.no_grad ” este utilizată pentru gestionarea contextului în cadrul de dezvoltare PyTorch. Scopul său este de a opri calculul gradienților pentru legătura dintre straturile ulterioare ale modelului de învățare profundă. Utilitatea acestei metode este atunci când gradienții nu sunt necesari într-un anumit model, atunci aceștia pot fi dezactivați pentru a aloca mai multe resurse hardware pentru procesarea buclei de antrenament a modelului.







Cum să utilizați metoda „torch.no_grad” în PyTorch?

Gradientele sunt calculate în cadrul trecerii înapoi în PyTorch. În mod implicit, PyTorch are diferențierea automată activată pentru toate modelele de învățare automată. Dezactivarea calculului gradient este esențială pentru dezvoltatorii care nu au suficiente resurse de procesare hardware.



Urmați pașii de mai jos pentru a afla cum să utilizați „ torch.no_grad ” metoda pentru a dezactiva calculul gradienților în PyTorch:







Pasul 1: Lansați IDE-ul Colab

Google Colaboratory este o alegere excelentă de platformă pentru dezvoltarea de proiecte folosind cadrul PyTorch datorită GPU-urilor sale dedicate. Du-te la Colab site-ul web și deschideți un „ Notebook nou ' așa cum se arată:



Pasul 2: Instalați și importați biblioteca Torch

Toată funcționalitatea PyTorch este încapsulată de „ torță ” bibliotecă. Instalarea și importul acestuia sunt esențiale înainte de a începe lucrul. „ !pip „pachetul de instalare al Python este folosit pentru a instala biblioteci și este importat în proiect folosind „ import ”comandă:

!pip instalează lanternă
torță de import

Pasul 3: Definiți un tensor PyTorch cu un gradient

Adăugați un tensor PyTorch la proiect folosind „ torță.tensor() ” metoda. Apoi, dă-i un gradient valid folosind „ requires_grad=Adevărat ” metoda așa cum se arată în codul de mai jos:

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

Pasul 4: Utilizați metoda „torch.no_grad” pentru a elimina gradientul

Apoi, eliminați gradientul de la tensorul definit anterior folosind „ torch.no_grad ” metoda:

cu torță.no_grad():
B = A**2 + 16

Codul de mai sus funcționează după cum urmează:

  • nu_grad() ” este folosită în interiorul unui “ cu ” buclă.
  • Fiecare tensor conținut în buclă are gradientul eliminat.
  • În cele din urmă, definiți un exemplu de calcul aritmetic folosind tensorul definit anterior și atribuiți-l la „ B ” variabilă așa cum se arată mai sus:

Pasul 5: Verificați eliminarea gradientului

Ultimul pas este să verifici ceea ce tocmai s-a făcut. Gradientul de la tensorul „ A ” a fost eliminat și trebuie verificat în ieșire folosind „ imprimare() ” metoda:

print('Calcul de gradient cu torch.no_grad: ', A.grad)
print('\nTensor original: ', A)
print('\nEșantion de calcul aritmetic: ', B)

Codul de mai sus funcționează după cum urmează:

  • grad „metoda ne oferă gradientul tensorului” A ”. Nu afișează niciunul în rezultatul de mai jos, deoarece gradientul a fost eliminat folosind „ torch.no_grad ” metoda.
  • Tensorul original arată încă că are gradientul său așa cum se vede din „ requires_grad=Adevărat ” declarație în ieșire.
  • În cele din urmă, eșantionul de calcul aritmetic arată rezultatul ecuației definite anterior:

Notă : Puteți accesa caietul nostru Colab aici legătură .

Pro-Tip

torch.no_grad ” este ideală acolo unde nu sunt necesari gradienții sau când este nevoie să se reducă sarcina de procesare a hardware-ului. O altă utilizare a acestei metode este în timpul inferenței, deoarece modelul este utilizat doar pentru a face predicții bazate pe date noi. Deoarece nu este implicat niciun antrenament, este complet logic să dezactivați pur și simplu calculul gradienților.

Succes! V-am arătat cum să utilizați metoda „torch.no_grad” pentru a dezactiva gradienții în PyTorch.

Concluzie

Folosește ' torch.no_grad ” în PyTorch prin definirea acesteia în interiorul unui „ cu ” buclă și toți tensorii din interior vor fi eliminate. Acest lucru va aduce îmbunătățiri ale vitezelor de procesare și va preveni acumularea de gradienți în bucla de antrenament. În acest blog, am arătat cum acest „ torch.no_grad ” poate fi folosită pentru a dezactiva gradienții tensorilor selectați în PyTorch.