Gradientit PyTorchissa
Gradientit ovat keskeisiä optimointitehtävissä, kuten neuroverkkojen koulutuksessa, joissa niiden avulla säädetään painoja ja bias-arvoja virheen minimoimiseksi. PyTorchissa gradientit lasketaan automaattisesti autograd
-moduulin avulla, joka seuraa tensorien operaatioita ja laskee derivaatat tehokkaasti.
Gradienttien seurannan käyttöönotto
Gradienttien seurannan voi ottaa tensorille käyttöön asettamalla requires_grad=True
tensorin luomisen yhteydessä. Tämä ohjeistaa PyTorchia seuraamaan kaikkia tensorille tehtyjä operaatioita gradienttien laskentaa varten.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Laskentaverkon rakentaminen
PyTorch rakentaa dynaamisen laskentaverkon suorittaessasi operaatioita tensoreilla, joilla on requires_grad=True
. Tämä verkko tallentaa tensorien ja operaatioiden väliset suhteet mahdollistaen automaattisen differentiaation.
Aloitamme määrittelemällä yksinkertaisen polynomifunktion:
y = 5x
Tavoitteemme on laskea derivaatta muuttujan x
suhteen kohdassa x = 2
.
123456import 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}")
Tämän laskentaverkon visualisointi, joka on luotu PyTorchViz-kirjastolla, voi näyttää melko monimutkaiselta, mutta se havainnollistaa tehokkaasti sen keskeisen idean:
Gradienttien laskeminen
Gradientin laskemiseksi tulee kutsua backward()
-metodia tulos-tensorille. Tämä laskee funktion derivaatan suhteessa syöte-tensoriin.
Laskettu gradientti on tämän jälkeen saatavilla .grad
-attribuutin kautta.
12345678import 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}")
Laskettu gradientti on y
:n derivaatta suhteessa x
:ään, arvioituna kohdassa x = 2
.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how the backward() method works in more detail?
What does the computational graph represent in PyTorch?
How is the gradient value interpreted in this example?
Awesome!
Completion rate improved to 5
Gradientit PyTorchissa
Pyyhkäise näyttääksesi valikon
Gradientit ovat keskeisiä optimointitehtävissä, kuten neuroverkkojen koulutuksessa, joissa niiden avulla säädetään painoja ja bias-arvoja virheen minimoimiseksi. PyTorchissa gradientit lasketaan automaattisesti autograd
-moduulin avulla, joka seuraa tensorien operaatioita ja laskee derivaatat tehokkaasti.
Gradienttien seurannan käyttöönotto
Gradienttien seurannan voi ottaa tensorille käyttöön asettamalla requires_grad=True
tensorin luomisen yhteydessä. Tämä ohjeistaa PyTorchia seuraamaan kaikkia tensorille tehtyjä operaatioita gradienttien laskentaa varten.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Laskentaverkon rakentaminen
PyTorch rakentaa dynaamisen laskentaverkon suorittaessasi operaatioita tensoreilla, joilla on requires_grad=True
. Tämä verkko tallentaa tensorien ja operaatioiden väliset suhteet mahdollistaen automaattisen differentiaation.
Aloitamme määrittelemällä yksinkertaisen polynomifunktion:
y = 5x
Tavoitteemme on laskea derivaatta muuttujan x
suhteen kohdassa x = 2
.
123456import 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}")
Tämän laskentaverkon visualisointi, joka on luotu PyTorchViz-kirjastolla, voi näyttää melko monimutkaiselta, mutta se havainnollistaa tehokkaasti sen keskeisen idean:
Gradienttien laskeminen
Gradientin laskemiseksi tulee kutsua backward()
-metodia tulos-tensorille. Tämä laskee funktion derivaatan suhteessa syöte-tensoriin.
Laskettu gradientti on tämän jälkeen saatavilla .grad
-attribuutin kautta.
12345678import 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}")
Laskettu gradientti on y
:n derivaatta suhteessa x
:ään, arvioituna kohdassa x = 2
.
Kiitos palautteestasi!