Come utilizzare 'torch.no_grad' in PyTorch?

Come Utilizzare Torch No Grad In Pytorch



Il calcolo dei gradienti per gli strati di una rete neurale è una funzionalità integrata del framework PyTorch. Gli utenti possono valutare la connessione tra strati adiacenti quando i gradienti vengono calcolati nel passaggio all'indietro. Tuttavia, ciò ha un impatto negativo sull’hardware a causa dei grandi volumi di dati che devono essere elaborati e, in questo caso, il “ torcia.no_grad Il metodo ' può essere utilizzato per interrompere il calcolo del gradiente laddove necessario.

In questo blog discuteremo di come utilizzare il ' torcia.no_grad 'metodo in PyTorch.

Qual è il metodo 'torch.no_grad' in PyTorch?

IL ' torcia.no_grad ' viene utilizzato per la gestione del contesto all'interno del framework di sviluppo PyTorch. Il suo scopo è fermare il calcolo dei gradienti per la connessione tra strati successivi del modello di deep learning. L'utilità di questo metodo è che quando i gradienti non sono richiesti in un particolare modello, possono essere disabilitati per allocare più risorse hardware per l'elaborazione del ciclo di addestramento del modello.







Come utilizzare il metodo 'torch.no_grad' in PyTorch?

I gradienti vengono calcolati all'interno del passaggio all'indietro in PyTorch. Per impostazione predefinita, PyTorch ha la differenziazione automatica attivata per tutti i modelli di machine learning. La disattivazione del calcolo del gradiente è essenziale per gli sviluppatori che non dispongono di risorse di elaborazione hardware sufficienti.



Seguire i passaggi seguenti per imparare a utilizzare ' torcia.no_grad 'metodo per disabilitare il calcolo dei gradienti in PyTorch:







Passaggio 1: avvia l'IDE Colab

Google Colaboratory è un'eccellente scelta di piattaforma per lo sviluppo di progetti utilizzando il framework PyTorch grazie alle sue GPU dedicate. Vai al Colab sito web e apri un ' Nuovo taccuino ' come mostrato:



Passaggio 2: installa e importa la libreria Torch

Tutte le funzionalità di PyTorch sono racchiuse nel ' torcia ' biblioteca. La sua installazione e importazione sono essenziali prima di iniziare i lavori. IL ' !pip Il pacchetto di installazione di Python viene utilizzato per installare le librerie e viene importato nel progetto utilizzando il pacchetto di installazione ' importare 'comando:

!pip installa la torcia
torcia di importazione

Passaggio 3: definire un tensore PyTorch con un gradiente

Aggiungi un tensore PyTorch al progetto utilizzando il comando ' torcia.tensore() ' metodo. Quindi, assegnagli un gradiente valido utilizzando il comando ' richiede_grad=Vero 'metodo come mostrato nel codice seguente:

A = torcia.tensore([5.0], require_grad=True)

Passaggio 4: utilizzare il metodo 'torch.no_grad' per rimuovere il gradiente

Successivamente, rimuovi il gradiente dal tensore precedentemente definito utilizzando il pulsante ' torcia.no_grad ' metodo:

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

Il codice sopra funziona come segue:

  • IL ' no_grado() Il metodo ' viene utilizzato all'interno di un ' con ' ciclo continuo.
  • Ad ogni tensore contenuto nel ciclo viene rimosso il gradiente.
  • Infine, definisci un esempio di calcolo aritmetico utilizzando il tensore precedentemente definito e assegnalo al ' B ' variabile come mostrato sopra:

Passaggio 5: verificare la rimozione del gradiente

L'ultimo passaggio è verificare ciò che è stato appena fatto. Il gradiente da tensore “ UN ' è stato rimosso e deve essere controllato nell'output utilizzando il comando ' stampa() ' metodo:

print('Calcolo del gradiente con torch.no_grad: ', A.grad)
print('\nTensore originale: ', A)
print('\nEsempio di calcolo aritmetico: ', B)

Il codice sopra funziona come segue:

  • IL ' grado 'Il metodo ci fornisce il gradiente del tensore' UN ”. Non ne viene mostrato nessuno nell'output seguente perché il gradiente è stato rimosso utilizzando il comando ' torcia.no_grad ' metodo.
  • Il tensore originale mostra ancora di avere il suo gradiente visto dal “ richiede_grad=Vero ' dichiarazione nell'output.
  • Infine, l’esempio di calcolo aritmetico mostra il risultato dell’equazione definita in precedenza:

Nota : Puoi accedere al nostro Colab Notebook da qui collegamento .

Suggerimento professionale

IL ' torcia.no_grad ” è ideale laddove i gradienti non sono necessari o quando è necessario ridurre il carico di elaborazione sull'hardware. Un altro utilizzo di questo metodo è durante l'inferenza poiché il modello viene utilizzato solo per fare previsioni basate su nuovi dati. Poiché non è necessaria alcuna formazione, è assolutamente sensato disattivare semplicemente il calcolo dei gradienti.

Successo! Ti abbiamo mostrato come utilizzare il metodo 'torch.no_grad' per disabilitare i gradienti in PyTorch.

Conclusione

Usa il ' torcia.no_grad ' in PyTorch definendolo all'interno di un ' con ' e a tutti i tensori contenuti al suo interno verrà rimosso il gradiente. Ciò porterà miglioramenti nelle velocità di elaborazione e impedirà l'accumulo di gradienti all'interno del ciclo di allenamento. In questo blog, abbiamo mostrato come questo ' torcia.no_grad Il metodo può essere utilizzato per disabilitare i gradienti dei tensori selezionati in PyTorch.