Backpropagazione Multi-Step
Come Tensorflow, anche PyTorch consente di costruire grafi computazionali più complessi che coinvolgono molteplici tensori intermedi.
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)
Il gradiente di output_mean rispetto a x viene calcolato utilizzando la regola della catena. Il risultato mostra quanto una piccola variazione in ciascun elemento di x influisce su output_mean.
Disabilitazione del tracciamento dei gradienti
In alcuni casi, può essere utile disabilitare il tracciamento dei gradienti per risparmiare memoria e calcolo. Poiché requires_grad=False è il comportamento predefinito, è possibile creare il tensore senza specificare questo parametro:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Sei incaricato di costruire una semplice rete neurale in PyTorch. L'obiettivo è calcolare il gradiente della loss rispetto alla matrice dei pesi.
- Definire una matrice dei pesi casuale (tensore)
Wdi forma1x3inizializzata con valori da una distribuzione uniforme su [0, 1], con tracciamento del gradiente abilitato. - Creare una matrice di input (tensore)
Xbasata su questa lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Eseguire la moltiplicazione di matrici tra
WeXper calcolareY. - Calcolare l'errore quadratico medio (MSE):
loss = mean((Y - Ytarget)
2 ). - Calcolare il gradiente della loss (
loss) rispetto aWutilizzando la retropropagazione. - Stampare il gradiente calcolato di
W.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Backpropagazione Multi-Step
Scorri per mostrare il menu
Come Tensorflow, anche PyTorch consente di costruire grafi computazionali più complessi che coinvolgono molteplici tensori intermedi.
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)
Il gradiente di output_mean rispetto a x viene calcolato utilizzando la regola della catena. Il risultato mostra quanto una piccola variazione in ciascun elemento di x influisce su output_mean.
Disabilitazione del tracciamento dei gradienti
In alcuni casi, può essere utile disabilitare il tracciamento dei gradienti per risparmiare memoria e calcolo. Poiché requires_grad=False è il comportamento predefinito, è possibile creare il tensore senza specificare questo parametro:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Sei incaricato di costruire una semplice rete neurale in PyTorch. L'obiettivo è calcolare il gradiente della loss rispetto alla matrice dei pesi.
- Definire una matrice dei pesi casuale (tensore)
Wdi forma1x3inizializzata con valori da una distribuzione uniforme su [0, 1], con tracciamento del gradiente abilitato. - Creare una matrice di input (tensore)
Xbasata su questa lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Eseguire la moltiplicazione di matrici tra
WeXper calcolareY. - Calcolare l'errore quadratico medio (MSE):
loss = mean((Y - Ytarget)
2 ). - Calcolare il gradiente della loss (
loss) rispetto aWutilizzando la retropropagazione. - Stampare il gradiente calcolato di
W.
Soluzione
Grazie per i tuoi commenti!
single