Huấn luyện một mô hình CNN cho văn bản
Bạn đã làm tốt khi định nghĩa lớp TextClassificationCNN. PyBooks giờ cần huấn luyện mô hình để tối ưu hóa việc phân tích cảm xúc của các bài đánh giá sách.
Các gói sau đã được nhập sẵn cho bạn:
torch, torch.nn là nn, torch.nn.functional là F, torch.optim là optim.
Một thể hiện của TextClassificationCNN() với các đối số vocab_size và embed_dim cũng đã được nạp và lưu dưới tên model.
Bài tập này là một phần của khóa học
Deep Learning cho Văn bản với PyTorch
Hướng dẫn bài tập
- Định nghĩa một hàm mất mát dùng cho phân loại nhị phân và lưu là
criterion. - Đưa gradient về 0 ở đầu vòng lặp huấn luyện.
- Cập nhật các tham số ở cuối vòng lặp.
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 loss function
criterion = nn.____()
optimizer = optim.SGD(model.parameters(), lr=0.1)
for epoch in range(10):
for sentence, label in data:
# Clear the gradients
model.____()
sentence = torch.LongTensor([word_to_ix.get(w, 0) for w in sentence]).unsqueeze(0)
label = torch.LongTensor([int(label)])
outputs = model(sentence)
loss = criterion(outputs, label)
loss.backward()
# Update the parameters
____.____()
print('Training complete!')