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
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