Deep Learning Academy · Lección

Llame a backward() para obtener gradientes

Rellene .grad con una sola línea

Lección 2 de 413 pasos

Llame a backward() para obtener gradientes es una lección gratuita de Deep Learning Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Deep Learning Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Deep Learning Academy incluye 4 lecciones en total.

Una línea para derivar

Una vez construido el grafo, una sola llamada realiza todo el cálculo diferencial. Ejecute backward() sobre su salida y los gradientes retrocederán hasta cada entrada.

Comience con un escalar

Llame a backward sobre el número final que desea minimizar, normalmente la pérdida. Debe ser un único escalar para que autograd sepa dónde comenzar.

y = x ** 2
y.backward()

Los gradientes llegan a .grad

Después de ejecutar backward, el .grad de cada tensor hoja contiene la derivada de la salida respecto a ese tensor. Las operaciones matemáticas ya están hechas.

print(x.grad)

Una comprobación rápida a mano

Para y igual a x al cuadrado, el cálculo diferencial indica que la derivada es 2x. Cuando x es igual a 2, el resultado es 4, y PyTorch rellena x.grad exactamente con 4.0.

Backward recorre el grafo

backward() recorre el grafo desde la salida hasta las entradas y aplica la regla de la cadena en cada nodo. Usted solo escribió las operaciones matemáticas de la pasada hacia delante y obtuvo todo esto automáticamente.

Gradientes para muchas entradas

Si la salida depende de varios tensores rastreados, una sola llamada a backward rellena el .grad de todos ellos a la vez. Así es como se actualizan modelos completos.

loss = (a * b + c).sum()
loss.backward()

El grafo se consume

De forma predeterminada, el grafo se libera después de backward para ahorrar memoria, por lo que llamarlo dos veces produce un error. En la siguiente pasada hacia delante se construye un grafo nuevo.

Consérvelo si es necesario

¿Necesita volver a llamar a backward sobre el mismo grafo? Pase retain_graph igual a true. Rara vez necesitará hacerlo, así que omítalo a menos que un error se lo indique.

loss.backward(retain_graph=True)

Salidas no escalares

Si la salida es un vector, backward necesita un argumento gradient que indique cómo ponderar cada elemento. La mayoría de las veces, en su lugar se suman los elementos para obtener un escalar.

Esta es la pasada hacia atrás

Esa única llamada a backward es la famosa pasada hacia atrás del entrenamiento. La pasada hacia delante calcula las predicciones y la pasada hacia atrás calcula cómo corregir los pesos.

De los gradientes al aprendizaje

Los números de .grad indican a cada peso en qué dirección moverse. Un optimizador los lee y ajusta los pesos para reducir un poco la pérdida.

Comprobación rápida

Asegúrese de comprender backward.

Resumen

Llame a backward() sobre una pérdida escalar y autograd aplicará la regla de la cadena por todo el grafo, rellenando el .grad de cada tensor con su derivada. Esa es la pasada hacia atrás. 🔁

Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Llame a backward() para obtener gradientes» es gratis?

Sí — el texto completo de «Llame a backward() para obtener gradientes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Deep Learning Academy, actualiza a CoddyKit PRO. El curso de Deep Learning Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Llame a backward() para obtener gradientes»?

Rellene .grad con una sola línea Practicas Deep Learning Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Deep Learning Academy?

No se requiere experiencia previa. Deep Learning Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Llame a backward() para obtener gradientes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Deep Learning Academy?

Sí. Cada lección de Deep Learning Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. requires_grad y el grafo de cómputo
  2. Llame a backward() para obtener gradientes
  3. Leer y poner a cero .grad
  4. torch.no_grad() para inferencia
← Volver a Deep Learning Academy