Wie verwende ich „torch.no_grad“ in PyTorch?

Wie Verwende Ich Torch No Grad In Pytorch



Die Berechnung von Gradienten für die Schichten eines neuronalen Netzwerks ist eine integrierte Funktion des PyTorch-Frameworks. Die Benutzer können die Verbindung zwischen benachbarten Schichten messen, wenn im Rückwärtsgang Steigungen berechnet werden. Aufgrund der großen Datenmengen, die verarbeitet werden müssen, und in diesem Fall der „ Torch.no_grad Mit der Methode kann die Gradientenberechnung bei Bedarf angehalten werden.

In diesem Blog besprechen wir die Verwendung des „ Torch.no_grad ”-Methode in PyTorch.

Was ist die Methode „torch.no_grad“ in PyTorch?

Der ' Torch.no_grad Die Methode wird für die Kontextverwaltung innerhalb des PyTorch-Entwicklungsframeworks verwendet. Sein Zweck besteht darin, die Berechnung von Gradienten für die Verbindung zwischen nachfolgenden Schichten des Deep-Learning-Modells zu stoppen. Der Nutzen dieser Methode besteht darin, dass, wenn in einem bestimmten Modell keine Farbverläufe erforderlich sind, diese deaktiviert werden können, um mehr Hardwareressourcen für die Verarbeitung der Trainingsschleife des Modells bereitzustellen.







Wie verwende ich die Methode „torch.no_grad“ in PyTorch?

Gradienten werden im Rückwärtsdurchlauf in PyTorch berechnet. Standardmäßig ist in PyTorch die automatische Differenzierung für alle Modelle des maschinellen Lernens aktiviert. Die Deaktivierung der Gradientenberechnung ist für Entwickler unerlässlich, die nicht über ausreichende Hardware-Rechenressourcen verfügen.



Befolgen Sie die nachstehenden Schritte, um zu erfahren, wie Sie „ Torch.no_grad ”-Methode zum Deaktivieren der Berechnung von Farbverläufen in PyTorch:







Schritt 1: Starten Sie die Colab-IDE

Google Colaboratory ist aufgrund seiner dedizierten GPUs eine ausgezeichnete Plattformwahl für die Entwicklung von Projekten mit dem PyTorch-Framework. Gehe zum Colab Webseite und öffnen Sie ein „ Neues Notizbuch ' wie gezeigt:



Schritt 2: Installieren und importieren Sie die Torch-Bibliothek

Die gesamte Funktionalität von PyTorch ist gekapselt durch „ Fackel ' Bibliothek. Die Installation und der Import sind vor Arbeitsbeginn unbedingt erforderlich. Der ' !Pip Das Installationspaket von Python wird zum Installieren von Bibliotheken verwendet und mit dem Befehl „ in das Projekt importiert. importieren ' Befehl:

!pip Brenner installieren
Taschenlampe importieren

Schritt 3: Definieren Sie einen PyTorch-Tensor mit einem Gradienten

Fügen Sie dem Projekt einen PyTorch-Tensor hinzu, indem Sie „ Torch.tensor() ' Methode. Geben Sie ihm dann einen gültigen Farbverlauf mit „ erfordert_grad=True ”-Methode wie im folgenden Code gezeigt:

A = Torch.tensor([5.0], require_grad=True)

Schritt 4: Verwenden Sie die Methode „torch.no_grad“, um den Farbverlauf zu entfernen

Als nächstes entfernen Sie den Gradienten aus dem zuvor definierten Tensor, indem Sie „ Torch.no_grad ' Methode:

mit Torch.no_grad():
B = A**2 + 16

Der obige Code funktioniert wie folgt:

  • Der ' no_grad() Die Methode wird innerhalb einer „ mit ” Schleife.
  • Für jeden in der Schleife enthaltenen Tensor wird der Gradient entfernt.
  • Definieren Sie abschließend eine beispielhafte arithmetische Berechnung unter Verwendung des zuvor definierten Tensors und weisen Sie ihn dem „ B ” Variable wie oben gezeigt:

Schritt 5: Überprüfen Sie die Farbverlaufsentfernung

Der letzte Schritt besteht darin, zu überprüfen, was gerade getan wurde. Der Gradient vom Tensor „ A ” wurde entfernt und muss in der Ausgabe mit dem „“ überprüft werden drucken() ' Methode:

print('Gradientenberechnung mit Torch.no_grad: ', A.grad)
print('\nOriginaltensor: ', A)
print('\nBeispielarithmetische Berechnung: ', B)

Der obige Code funktioniert wie folgt:

  • Der ' grad „Methode gibt uns den Gradienten des Tensors“ A “. In der Ausgabe unten wird „Keine“ angezeigt, da der Farbverlauf mit „ Torch.no_grad ' Methode.
  • Der ursprüngliche Tensor zeigt immer noch, dass er seinen Gradienten hat, wie er von der „ erfordert_grad=True ”-Anweisung in der Ausgabe.
  • Abschließend zeigt die beispielhafte arithmetische Berechnung das Ergebnis der zuvor definierten Gleichung:

Notiz : Hier können Sie auf unser Colab-Notizbuch zugreifen Verknüpfung .

Profi-Tipp

Der ' Torch.no_grad Die Methode ist ideal, wenn die Farbverläufe nicht benötigt werden oder die Verarbeitungslast der Hardware reduziert werden muss. Eine weitere Verwendung dieser Methode ist die Inferenz, da das Modell nur zum Erstellen von Vorhersagen auf der Grundlage neuer Daten verwendet wird. Da kein Training erforderlich ist, ist es durchaus sinnvoll, die Berechnung von Steigungen einfach zu deaktivieren.

Erfolg! Wir haben Ihnen gezeigt, wie Sie mit der Methode „torch.no_grad“ Farbverläufe in PyTorch deaktivieren.

Abschluss

Benutzen Sie die „ Torch.no_grad ”-Methode in PyTorch durch Definieren in einem „ mit ”-Schleife und alle darin enthaltenen Tensoren werden aus ihrem Gradienten entfernt. Dies führt zu einer Verbesserung der Verarbeitungsgeschwindigkeit und verhindert die Anhäufung von Gradienten innerhalb der Trainingsschleife. In diesem Blog haben wir gezeigt, wie dies „ Torch.no_grad Mit der Methode können die Gradienten ausgewählter Tensoren in PyTorch deaktiviert werden.