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_classes
auf7
gesetzt ist, und weise esnet
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 ihnoptimizer
zu. - Starte die for-Trainingsschleife, indem du über die
images
undlabels
vondataloader_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}")