IniziaInizia gratis

Ciclo di training del classificatore di immagini

È il momento di addestrare il classificatore di immagini! Userai la Net definita in precedenza e la allenerai a distinguere tra sette tipi di nuvole.

Per definire la loss e l'ottimizzatore, dovrai usare le funzioni di torch.nn e torch.optim, importate per te rispettivamente come nn e optim. Non devi modificare nulla nel ciclo di training: è esattamente come quelli che hai già scritto, con qualche logica in più per stampare la loss durante l'addestramento.

Questo esercizio fa parte del corso

Deep Learning intermedio con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci il modello usando la tua classe Net con num_classes impostato a 7 e assegnalo a net.
  • Definisci la funzione di loss come cross-entropy loss e assegnala a criterion.
  • Definisci l'ottimizzatore come Adam, passandogli i parametri del modello e un learning rate di 0.001, e assegnalo a optimizer.
  • Avvia il for-loop di training iterando su images e labels di dataloader_train.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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}")
Modifica ed esegui il codice