Vòng lặp huấn luyện bộ phân loại ảnh
Đến lúc huấn luyện bộ phân loại ảnh rồi! Bạn sẽ dùng Net đã định nghĩa trước đó và huấn luyện nó để phân biệt bảy loại mây.
Để định nghĩa hàm mất mát và bộ tối ưu, bạn sẽ dùng các hàm từ torch.nn và torch.optim, đã được nhập sẵn lần lượt là nn và optim. Bạn không cần thay đổi gì trong chính vòng lặp huấn luyện: nó giống hệt các vòng lặp bạn đã viết trước đây, chỉ thêm một chút logic để in loss trong quá trình huấn luyện.
Bài tập này là một phần của khóa học
Deep Learning nâng cao với PyTorch
Hướng dẫn bài tập
- Khởi tạo mô hình bằng lớp
Netcủa bạn vớinum_classesđặt là7và gán chonet. - Định nghĩa hàm mất mát là cross-entropy loss và gán cho
criterion. - Định nghĩa bộ tối ưu là Adam, truyền vào các tham số của mô hình và tốc độ học
0.001, rồi gán chooptimizer. - Bắt đầu vòng lặp for huấn luyện bằng cách lặp qua
imagesvàlabelscủadataloader_train.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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}")