ÎncepețiÎncepe gratuit

Bucla de antrenament a clasificatorului de imagini

A venit momentul să antrenezi clasificatorul de imagini! Vei folosi rețeaua Net definită anterior și o vei antrena să distingă între șapte tipuri de nori.

Pentru a defini funcția de pierdere și optimizatorul, va trebui să folosești funcții din torch.nn și torch.optim, importate deja ca nn, respectiv optim. Nu trebuie să modifici nimic în bucla de antrenament în sine: este identică cu cele scrise anterior, cu o logică suplimentară pentru afișarea pierderii în timpul antrenamentului.

Acest exercițiu face parte din cursul

Deep Learning intermediar cu PyTorch

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește modelul folosind clasa Net cu num_classes setat la 7 și atribuie-l variabilei net.
  • Definește funcția de pierdere ca pierdere de entropie încrucișată și atribuie-o variabilei criterion.
  • Definește optimizatorul ca Adam, pasând parametrii modelului și o rată de învățare de 0.001, și atribuie-l variabilei optimizer.
  • Pornește bucla for de antrenament iterând peste images și labels din dataloader_train.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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}")
Editează și rulează codul