LoslegenKostenlos loslegen

Trainingsschleife für Bildklassifikator

Jetzt ist es Zeit, den Bildklassifikator zu trainieren! Du wirst das Net, das du zuvor definiert hast, verwenden und es trainieren, zwischen sieben Wolkentypen zu unterscheiden.

Um den Verlust und Optimizer zu definieren, musst du Funktionen von torch.nn und torch.optim verwenden, die für dich als nn und optim importiert wurden. Du musst an der Trainingsschleife selbst nichts ändern: Sie ist genau wie die, die du zuvor geschrieben hast, mit zusätzlicher Logik zur Verlustausgabe während des Trainings.

Diese Übung ist Teil des Kurses

Deep Learning mit PyTorch für Fortgeschrittene

Kurs anzeigen

Anleitung zur Übung

  • Definiere das Modell mit deiner Net-Klasse, wobei num_classes auf 7 gesetzt ist, und weise es net zu.
  • Definiere die Verlustfunktion als Cross-Entropy-Loss und weise sie criterion zu.
  • Definiere den Optimizer als Adam, übergebe ihm die Parameter des Modells und die Lernrate von 0.001, und weise ihn optimizer zu.
  • Starte die for-Trainingsschleife, indem du über die images und labels von dataloader_train iterierst.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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}")
Code bearbeiten und ausführen