Trainingslus voor beeldclassificatie
Tijd om de beeldclassifier te trainen! Je gebruikt de Net die je eerder hebt gedefinieerd en traint deze om zeven soorten wolken te onderscheiden.
Om de loss en optimizer te definiëren, gebruik je functies uit torch.nn en torch.optim, die voor je zijn geïmporteerd als respectievelijk nn en optim. Je hoeft niets te wijzigen aan de trainingslus zelf: die is precies zoals je eerder schreef, met extra logica om de loss tijdens het trainen te printen.
Deze oefening maakt deel uit van de cursus
Gevorderde Deep Learning met PyTorch
Oefeninstructies
- Definieer het model met je
Net-klasse metnum_classesingesteld op7en wijs het toe aannet. - Definieer de verliesfunctie als cross-entropy loss en wijs deze toe aan
criterion. - Definieer de optimizer als Adam, geef de modelparameters en de learning rate
0.001mee, en wijs deze toe aanoptimizer. - Start de trainings-for-loop door te itereren over de trainings-
imagesenlabelsvandataloader_train.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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}")