Un bucle de entrenamiento PyTorch profesional

2 min

Objetivo: separar claramente entrenamiento, validación, guardado y métricas.

Una época de entrenamiento

python
def train_epoch(model, loader, criterion, optimizer, device):
    model.train()
    total_loss = 0.0
    for x, y in loader:
        x, y = x.to(device), y.to(device)
        optimizer.zero_grad(set_to_none=True)
        logits = model(x)
        loss = criterion(logits, y)
        loss.backward()
        optimizer.step()
        total_loss += loss.item() * x.size(0)
    return total_loss / len(loader.dataset)

Multiplicar por x.size(0) reconstruye la suma por ejemplo antes de la media global. Una media ingenua de las medias de los batches sesga el último batch si es más pequeño.

Vista previa: el resto de la lección está reservado a los inscritos.

¿Ya te inscribiste con un código?

Tu acceso está vinculado a tu cuenta, no a este enlace. Inicia sesión con el mismo correo que usaste en clase: tu curso te espera, no hace falta volver a introducir el código.

Iniciar sesión¿Aún no tienes cuenta? Crear una
Esta lección forma parte del módulo «Hacer aprender la red»

Los primeros módulos del curso son de acceso libre. Para el resto hay tres opciones: comprar este curso de una vez, suscribirte, o introducir el código entregado en clase.

Suscribirme — 19 $ US/mesVolver al plan
¿Eres estudiante del curso?

El código se vincula a tu cuenta: inicia sesión o crea una cuenta y se aplicará automáticamente al volver.

¿Aún no tienes cuenta? Crear una