Qué es PyTorch: tensores, diferenciación automática y modelos
Primer ejercicio con PyTorch: comprobar un gradiente escalar
Distingue instalación, cálculo directo y acumulación con una prueba pequeña en CPU.
Qué aprenderás
- Elegir el paquete
- Escribir la respuesta esperada
- Observar la acumulación
Antes de empezar
- Python y cálculo básicos
- Entorno aislado para ejercicios posteriores
Compara derivadas analíticas y salidas observadas sin ocultar los fallos.
Conclusiones clave
- Instalación y acelerador requieren comprobaciones distintas.
- Una derivada conocida facilita el diagnóstico.
- Limpiar gradientes de forma deliberada.
Elegir el paquete
El README remite a las instrucciones oficiales para instalar paquetes binarios. Selecciona la distribución correspondiente al sistema y acelerador, sin copiar un comando CUDA de otra máquina.
Usa un entorno aislado y registra Python, torch y dispositivo. Instalar la biblioteca no demuestra que el controlador ni un modelo descargado sean compatibles.
Escribir la respuesta esperada
Asigna 3 a x, activa requires_grad y calcula su cuadrado. La derivada es 2x, de modo que el gradiente esperado es 6; no hacen falta pesos ni datos externos.
Empieza con entrada de coma flotante en CPU. Si el resultado difiere, comprueba código y entorno antes de añadir lotes, precisión mixta o un acelerador.
Observar la acumulación
Recalcula la expresión antes de otro backward y conserva x.grad. La expectativa acumulada es 12; asignar None al campo antes de una nueva pasada devuelve la expectativa a 6.
Son valores analíticos, no salidas observadas aquí. La ruta predeterminada suele liberar el grafo después de backward; evita repetir la llamada sobre el mismo resultado ya utilizado.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Registrar la distribución y las versiones.
- 2
Comprobar la derivada en CPU.
- 3
Recalcular para estudiar la acumulación.
Ejemplo para copiar
import torch
x = torch.tensor(3.0, requires_grad=True)
(x*x).backward()
(x*x).backward()
print(x.grad) # Expectativa: 12
x.grad = None
(x*x).backward()
print(x.grad) # Expectativa: 6Preguntas frecuentes
¿Necesito una GPU?
No. Basta un escalar en CPU.
¿Por qué recalcular la expresión?
Una nueva pasada directa crea un grafo nuevo después de liberar el anterior.
Fuentes
- PyTorch / README.mdFuente verificada 2026-09-23
- PyTorch / torch/autograd/__init__.pyFuente verificada 2026-09-23