ComenzarEmpieza gratis

Bucle de entrenamiento del clasificador de imágenes

Es hora de entrenar el clasificador de imágenes. Vas a utilizar el Net que has definido antes y lo vas a entrenar para que distinga entre siete tipos de nubes.

Para definir la pérdida y el optimizador, tienes que utilizar funciones de torch.nn y torch.optim, importadas para ti como nn y optim, respectivamente. No hay que cambiar nada en el bucle de entrenamiento en sí: es exactamente igual que los que escribiste antes, con alguna lógica más para imprimir la pérdida durante el entrenamiento.

Este ejercicio forma parte del curso

Aprendizaje profundo intermedio con PyTorch

Ver curso

Instrucciones de ejercicio

  • Define el modelo mediante tu clase Net con num_classes establecido en 7 y asígnalo a net.
  • Define la función de pérdida como pérdida de entropía cruzada y asígnala a criterion.
  • Define el optimizador como Adam, pásale los parámetros del modelo y la tasa de aprendizaje de 0.001 y asígnalo a optimizer.
  • Inicia el bucle for de entrenamiento e itera por el entrenamiento images y labels de dataloader_train.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____

for epoch in range(3):
    running_loss = 0.0
    # Iterate over training batches
    ____
        optimizer.zero_grad()
        outputs = net(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    
    epoch_loss = running_loss / len(dataloader_train)
    print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")
Editar y ejecutar código