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
Anleitung zur Übung
- Definiere das Modell mit deiner
Net-Klasse, wobeinum_classesauf7gesetzt ist, und weise esnetzu. - Definiere die Verlustfunktion als Cross-Entropy-Loss und weise sie
criterionzu. - Definiere den Optimizer als Adam, übergebe ihm die Parameter des Modells und die Lernrate von
0.001, und weise ihnoptimizerzu. - Starte die for-Trainingsschleife, indem du über die
imagesundlabelsvondataloader_trainiterierst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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}")