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

bookMonivaiheinen Takaisinkytkentä

Kuten Tensorflow, myös PyTorch mahdollistaa monimutkaisempien laskentakaavioiden rakentamisen, jotka sisältävät useita väliarvotensoreita.

12345678910111213
import torch # Create a 2D tensor with gradient tracking x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]], requires_grad=True) # Define intermediate layers y = 6 * x + 3 z = 10 * y ** 2 # Compute the mean of the final output output_mean = z.mean() print(f"Output: {output_mean}") # Perform backpropagation output_mean.backward() # Print the gradient of x print("Gradient of x:\n", x.grad)
copy

Gradientti output_mean:n suhteen x:ään lasketaan ketjusäännön avulla. Tuloksena nähdään, kuinka paljon jokaisen x:n alkion pieni muutos vaikuttaa output_mean:iin.

Gradienttien seurannan poistaminen käytöstä

Joissakin tapauksissa gradienttien seuranta kannattaa poistaa käytöstä muistin ja laskennan säästämiseksi. Koska requires_grad=False on oletusarvo, voit luoda tensorin ilman tämän parametrin määrittelyä:

x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Tehtävä

Swipe to start coding

Sinun tehtävänäsi on rakentaa yksinkertainen neuroverkko PyTorchilla. Tavoitteena on laskea tappion gradientti painomatriisia kohtaan.

  1. Määrittele satunnainen painomatriisi (tenosri) W, jonka muoto on 1x3 ja joka alustetaan arvoilla yhtenäisestä jaksosta [0, 1], gradientin seuranta käytössä.
  2. Luo syötematriisi (tenosri) X seuraavan listan perusteella: [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]].
  3. Suorita matriisikertolasku W:n ja X:n välillä laskeaksesi Y.
  4. Laske keskineliövirhe (MSE): tappio = mean((Y - Ytarget)2).
  5. Laske tappion gradientti (loss) W:tä kohtaan takaisinkuljetuksella.
  6. Tulosta lasketut gradientit W:lle.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain how the gradients are calculated in this example?

What happens if I change the values in the tensor `x`?

How does disabling gradient tracking affect performance?

close

Awesome!

Completion rate improved to 5

bookMonivaiheinen Takaisinkytkentä

Pyyhkäise näyttääksesi valikon

Kuten Tensorflow, myös PyTorch mahdollistaa monimutkaisempien laskentakaavioiden rakentamisen, jotka sisältävät useita väliarvotensoreita.

12345678910111213
import torch # Create a 2D tensor with gradient tracking x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]], requires_grad=True) # Define intermediate layers y = 6 * x + 3 z = 10 * y ** 2 # Compute the mean of the final output output_mean = z.mean() print(f"Output: {output_mean}") # Perform backpropagation output_mean.backward() # Print the gradient of x print("Gradient of x:\n", x.grad)
copy

Gradientti output_mean:n suhteen x:ään lasketaan ketjusäännön avulla. Tuloksena nähdään, kuinka paljon jokaisen x:n alkion pieni muutos vaikuttaa output_mean:iin.

Gradienttien seurannan poistaminen käytöstä

Joissakin tapauksissa gradienttien seuranta kannattaa poistaa käytöstä muistin ja laskennan säästämiseksi. Koska requires_grad=False on oletusarvo, voit luoda tensorin ilman tämän parametrin määrittelyä:

x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Tehtävä

Swipe to start coding

Sinun tehtävänäsi on rakentaa yksinkertainen neuroverkko PyTorchilla. Tavoitteena on laskea tappion gradientti painomatriisia kohtaan.

  1. Määrittele satunnainen painomatriisi (tenosri) W, jonka muoto on 1x3 ja joka alustetaan arvoilla yhtenäisestä jaksosta [0, 1], gradientin seuranta käytössä.
  2. Luo syötematriisi (tenosri) X seuraavan listan perusteella: [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]].
  3. Suorita matriisikertolasku W:n ja X:n välillä laskeaksesi Y.
  4. Laske keskineliövirhe (MSE): tappio = mean((Y - Ytarget)2).
  5. Laske tappion gradientti (loss) W:tä kohtaan takaisinkuljetuksella.
  6. Tulosta lasketut gradientit W:lle.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2
single

single

some-alt