Kom igångKom igång gratis

Träningsloop för bildklassificerare

Nu är det dags att träna bildklassificeraren! Du använder det Net du definierade tidigare och tränar det att skilja mellan sju molntyper.

För att definiera förlustfunktionen och optimeraren behöver du använda funktioner från torch.nn och torch.optim, som importerats åt dig som nn respektive optim. Du behöver inte ändra något i själva träningsloopen – den ser ut precis som de du skrev tidigare, med lite extra logik för att skriva ut förlusten under träningen.

Den här övningen är en del av kursen

Fördjupad djupinlärning med PyTorch

Visa kurs

Övningsinstruktioner

  • Definiera modellen med din Net-klass med num_classes satt till 7 och tilldela den till net.
  • Definiera förlustfunktionen som korsentriopiförlust och tilldela den till criterion.
  • Definiera optimeraren som Adam, skicka med modellens parametrar och inlärningshastigheten 0.001, och tilldela den till optimizer.
  • Starta träningens for-loop genom att iterera över träningsdata med images och labels från dataloader_train.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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}")
Redigera och kör kod