开始使用免费开始使用

图像分类器训练循环

现在开始训练图像分类器!您将使用之前定义的 Net,并训练它区分 7 种云的类型。

要定义损失函数和优化器,您需要使用 torch.nntorch.optim 中的函数,分别已以 nnoptim 导入。训练循环本身无需修改:它与您之前写的一样,只是增加了在训练过程中打印损失的逻辑。

本练习是课程的一部分

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}")
编辑并运行代码