Retropropagación de Múltiples Pasos
Al igual que Tensorflow, PyTorch también permite construir grafos computacionales más complejos que involucran múltiples tensores intermedios.
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)
El gradiente de output_mean con respecto a x se calcula utilizando la regla de la cadena. El resultado muestra cuánto afecta un pequeño cambio en cada elemento de x al valor de output_mean.
Desactivación del seguimiento de gradientes
En algunos casos, puede ser conveniente desactivar el seguimiento de gradientes para ahorrar memoria y computación. Dado que requires_grad=False es el comportamiento predeterminado, simplemente se puede crear el tensor sin especificar este parámetro:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
¡Gracias por tus comentarios!
single
Retropropagación de Múltiples Pasos
Desliza para mostrar el menú
Al igual que Tensorflow, PyTorch también permite construir grafos computacionales más complejos que involucran múltiples tensores intermedios.
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)
El gradiente de output_mean con respecto a x se calcula utilizando la regla de la cadena. El resultado muestra cuánto afecta un pequeño cambio en cada elemento de x al valor de output_mean.
Desactivación del seguimiento de gradientes
En algunos casos, puede ser conveniente desactivar el seguimiento de gradientes para ahorrar memoria y computación. Dado que requires_grad=False es el comportamiento predeterminado, simplemente se puede crear el tensor sin especificar este parámetro:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Desliza para comenzar a programar
Se te asigna la tarea de construir una red neuronal simple en PyTorch. Tu objetivo es calcular el gradiente de la pérdida con respecto a la matriz de pesos.
- Definir una matriz de pesos aleatoria (tensor)
Wde forma1x3inicializada con valores de una distribución uniforme en [0, 1], con seguimiento de gradientes habilitado. - Crear una matriz de entrada (tensor)
Xbasada en esta lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Realizar la multiplicación de matrices entre
WyXpara calcularY. - Calcular el error cuadrático medio (MSE):
pérdida = mean((Y - Ytarget)
2 ). - Calcular el gradiente de la pérdida (
loss) con respecto aWutilizando retropropagación. - Imprimir el gradiente calculado de
W.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla