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 torciatorcia 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.