Backpropagazione Multi-Step
Come Tensorflow, anche PyTorch consente di costruire grafi computazionali più complessi che coinvolgono più 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 di ciascun elemento di x
influisce su output_mean
.
Disabilitazione del Tracciamento dei Gradienti
In alcuni casi, potrebbe essere necessario disabilitare il tracciamento dei gradienti per risparmiare memoria e calcolo. Poiché requires_grad=False
è il comportamento predefinito, è possibile semplicemente 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
Ti viene richiesto 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)
W
di forma1x3
inizializzata con valori da una distribuzione uniforme su [0, 1], con tracciamento del gradiente abilitato. - Creare una matrice di input (tensore)
X
basata su questa lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
. - Eseguire la moltiplicazione di matrici tra
W
eX
per calcolareY
. - Calcolare l'errore quadratico medio (MSE):
loss = mean((Y - Ytarget)
2 ). - Calcolare il gradiente della loss (
loss
) rispetto aW
utilizzando la backpropagation. - 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
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 più 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 di ciascun elemento di x
influisce su output_mean
.
Disabilitazione del Tracciamento dei Gradienti
In alcuni casi, potrebbe essere necessario disabilitare il tracciamento dei gradienti per risparmiare memoria e calcolo. Poiché requires_grad=False
è il comportamento predefinito, è possibile semplicemente 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
Ti viene richiesto 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)
W
di forma1x3
inizializzata con valori da una distribuzione uniforme su [0, 1], con tracciamento del gradiente abilitato. - Creare una matrice di input (tensore)
X
basata su questa lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
. - Eseguire la moltiplicazione di matrici tra
W
eX
per calcolareY
. - Calcolare l'errore quadratico medio (MSE):
loss = mean((Y - Ytarget)
2 ). - Calcolare il gradiente della loss (
loss
) rispetto aW
utilizzando la backpropagation. - Stampare il gradiente calcolato di
W
.
Soluzione
Grazie per i tuoi commenti!
Awesome!
Completion rate improved to 5single