Monivaiheinen Takaisinkytkentä
Kuten Tensorflow, myös PyTorch mahdollistaa monimutkaisempien laskentakaavioiden rakentamisen, jotka sisältävät useita väliarvotensoreita.
12345678910111213import 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)
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]])
Swipe to start coding
Sinun tehtävänäsi on rakentaa yksinkertainen neuroverkko PyTorchilla. Tavoitteena on laskea tappion gradientti painomatriisia kohtaan.
- Määrittele satunnainen painomatriisi (tenosri)
W, jonka muoto on1x3ja joka alustetaan arvoilla yhtenäisestä jaksosta [0, 1], gradientin seuranta käytössä. - Luo syötematriisi (tenosri)
Xseuraavan listan perusteella:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Suorita matriisikertolasku
W:n jaX:n välillä laskeaksesiY. - Laske keskineliövirhe (MSE):
tappio = mean((Y - Ytarget)
2 ). - Laske tappion gradientti (
loss)W:tä kohtaan takaisinkuljetuksella. - Tulosta lasketut gradientit
W:lle.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Awesome!
Completion rate improved to 5
Monivaiheinen Takaisinkytkentä
Pyyhkäise näyttääksesi valikon
Kuten Tensorflow, myös PyTorch mahdollistaa monimutkaisempien laskentakaavioiden rakentamisen, jotka sisältävät useita väliarvotensoreita.
12345678910111213import 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)
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]])
Swipe to start coding
Sinun tehtävänäsi on rakentaa yksinkertainen neuroverkko PyTorchilla. Tavoitteena on laskea tappion gradientti painomatriisia kohtaan.
- Määrittele satunnainen painomatriisi (tenosri)
W, jonka muoto on1x3ja joka alustetaan arvoilla yhtenäisestä jaksosta [0, 1], gradientin seuranta käytössä. - Luo syötematriisi (tenosri)
Xseuraavan listan perusteella:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Suorita matriisikertolasku
W:n jaX:n välillä laskeaksesiY. - Laske keskineliövirhe (MSE):
tappio = mean((Y - Ytarget)
2 ). - Laske tappion gradientti (
loss)W:tä kohtaan takaisinkuljetuksella. - Tulosta lasketut gradientit
W:lle.
Ratkaisu
Kiitos palautteestasi!
single