Gradientit PyTorchissa
Yhteenvetona, gradientit ovat funktion osittaisderivaattoja sen syötteiden suhteen.
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 tensorille otetaan 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 suoritettaessa operaatioita tensoreilla, joilla on requires_grad=True. Tämä verkko tallentaa tensorien ja operaatioiden väliset suhteet mahdollistaen automaattisen differentiaation.
Aloitetaan määrittelemällä yksinkertainen polynomifunktio:
y = 5x
Tavoitteena 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, saattaa vaikuttaa hieman monimutkaiselta, mutta se havainnollistaa tehokkaasti sen keskeisen periaatteen:
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 muuttujan x suhteen, arvioituna kohdassa x = 2.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 5
Gradientit PyTorchissa
Pyyhkäise näyttääksesi valikon
Yhteenvetona, gradientit ovat funktion osittaisderivaattoja sen syötteiden suhteen.
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 tensorille otetaan 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 suoritettaessa operaatioita tensoreilla, joilla on requires_grad=True. Tämä verkko tallentaa tensorien ja operaatioiden väliset suhteet mahdollistaen automaattisen differentiaation.
Aloitetaan määrittelemällä yksinkertainen polynomifunktio:
y = 5x
Tavoitteena 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, saattaa vaikuttaa hieman monimutkaiselta, mutta se havainnollistaa tehokkaasti sen keskeisen periaatteen:
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 muuttujan x suhteen, arvioituna kohdassa x = 2.
Kiitos palautteestasi!