Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Gradiënten in PyTorch | Sectie
Pytorch Essentials voor ML Engineer

bookGradiënten in PyTorch

Note
Definitie

Ter herinnering: gradiënten zijn partiële afgeleiden van een functie ten opzichte van de invoerwaarden.

Gradiënten zijn essentieel bij optimalisatietaken zoals het trainen van neurale netwerken, waarbij ze helpen om gewichten en biases aan te passen om de fout te minimaliseren. In PyTorch worden ze automatisch berekend met behulp van de autograd-module, die bewerkingen op tensors volgt en efficiënt afgeleiden berekent.

Gradiënttracking inschakelen

Om gradiënttracking voor een tensor in te schakelen, wordt het argument requires_grad=True gebruikt bij het aanmaken van de tensor. Dit geeft aan PyTorch door om alle bewerkingen op de tensor te volgen voor gradiëntberekeningen.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Opbouwen van een computationeel netwerk

PyTorch bouwt een dynamisch computationeel netwerk terwijl je bewerkingen uitvoert op tensors met requires_grad=True. Dit netwerk slaat de relaties op tussen tensors en bewerkingen, waardoor automatische differentiatie mogelijk is.

We beginnen met het definiëren van een eenvoudige polynoomfunctie:

y = 5x3 + 2x2 + 4x + 8

Het doel is om de afgeleide te berekenen ten opzichte van x bij x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

De visualisatie van deze computationele graaf gemaakt met behulp van de PyTorchViz-bibliotheek kan enigszins complex lijken, maar brengt effectief het belangrijkste idee over:

Gradienten berekenen

Om de gradiënt te berekenen, moet de methode backward() worden aangeroepen op de output-tensor. Hiermee wordt de afgeleide van de functie ten opzichte van de input-tensor berekend.

De berekende gradiënt kan vervolgens worden geraadpleegd met het .grad-attribuut.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

De berekende gradiënt is de afgeleide van y ten opzichte van x, geëvalueerd bij x = 2.

question mark

Hoe kun je de berekende gradiënt van een tensor benaderen na backpropagation in PyTorch?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 11

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookGradiënten in PyTorch

Veeg om het menu te tonen

Note
Definitie

Ter herinnering: gradiënten zijn partiële afgeleiden van een functie ten opzichte van de invoerwaarden.

Gradiënten zijn essentieel bij optimalisatietaken zoals het trainen van neurale netwerken, waarbij ze helpen om gewichten en biases aan te passen om de fout te minimaliseren. In PyTorch worden ze automatisch berekend met behulp van de autograd-module, die bewerkingen op tensors volgt en efficiënt afgeleiden berekent.

Gradiënttracking inschakelen

Om gradiënttracking voor een tensor in te schakelen, wordt het argument requires_grad=True gebruikt bij het aanmaken van de tensor. Dit geeft aan PyTorch door om alle bewerkingen op de tensor te volgen voor gradiëntberekeningen.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Opbouwen van een computationeel netwerk

PyTorch bouwt een dynamisch computationeel netwerk terwijl je bewerkingen uitvoert op tensors met requires_grad=True. Dit netwerk slaat de relaties op tussen tensors en bewerkingen, waardoor automatische differentiatie mogelijk is.

We beginnen met het definiëren van een eenvoudige polynoomfunctie:

y = 5x3 + 2x2 + 4x + 8

Het doel is om de afgeleide te berekenen ten opzichte van x bij x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

De visualisatie van deze computationele graaf gemaakt met behulp van de PyTorchViz-bibliotheek kan enigszins complex lijken, maar brengt effectief het belangrijkste idee over:

Gradienten berekenen

Om de gradiënt te berekenen, moet de methode backward() worden aangeroepen op de output-tensor. Hiermee wordt de afgeleide van de functie ten opzichte van de input-tensor berekend.

De berekende gradiënt kan vervolgens worden geraadpleegd met het .grad-attribuut.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

De berekende gradiënt is de afgeleide van y ten opzichte van x, geëvalueerd bij x = 2.

question mark

Hoe kun je de berekende gradiënt van een tensor benaderen na backpropagation in PyTorch?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 11
some-alt