Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Gradientit PyTorchissa | Edistyneemmät Käsitteet
Pytorch Perusteet

bookGradientit 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 seuranta otetaan tensorille käyttöön asettamalla requires_grad=True tensorin luomisen yhteydessä. Tämä ohjeistaa PyTorchia seuraamaan kaikkia tensorille tehtyjä operaatioita gradienttien laskentaa varten.

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

Laskentaverkon rakentaminen

PyTorch rakentaa dynaamisen laskentaverkon suoritettaessa 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 = 5x3 + 2x2 + 4x + 8

Tavoitteena on laskea derivaatta muuttujan x suhteen kohdassa 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

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.

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

Laskettu gradientti on y:n derivaatta suhteessa x:ään, arvioituna kohdassa x = 2.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 5

bookGradientit 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 seuranta otetaan tensorille käyttöön asettamalla requires_grad=True tensorin luomisen yhteydessä. Tämä ohjeistaa PyTorchia seuraamaan kaikkia tensorille tehtyjä operaatioita gradienttien laskentaa varten.

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

Laskentaverkon rakentaminen

PyTorch rakentaa dynaamisen laskentaverkon suoritettaessa 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 = 5x3 + 2x2 + 4x + 8

Tavoitteena on laskea derivaatta muuttujan x suhteen kohdassa 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

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.

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

Laskettu gradientti on y:n derivaatta suhteessa x:ään, arvioituna kohdassa x = 2.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1
some-alt