開始使用免費開始

影像分類器訓練迴圈

開始訓練影像分類器吧!你會使用先前定義的 Net,並把它訓練成能分辨 7 種雲的類型。

為了定義損失與最佳化器,你需要使用 torch.nntorch.optim 中的函式,分別已匯入為 nnoptim。你不需要修改訓練迴圈本身:它和你之前寫的一樣,只是多了在訓練過程中列印損失的邏輯。

本練習屬於課程

Intermediate Deep Learning with PyTorch

檢視課程

練習說明

  • 使用你的 Net 類別,將 num_classes 設為 7 來建立模型,並指定給 net
  • 將損失函式定義為交叉熵損失,並指定給 criterion
  • 將最佳化器定義為 Adam,傳入模型參數與學習率 0.001,並指定給 optimizer
  • dataloader_train 的訓練 imageslabels 進行迭代,開始訓練用的 for 迴圈。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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}")
編輯並執行程式碼