Tạo mô hình RNN cho sinh văn bản
Tại PyBooks, bạn được giao phát triển một thuật toán có thể sinh văn bản. Dự án nhằm tự động hoàn thành tên sách. Để khởi động, bạn quyết định thử nghiệm với Recurrent Neural Network (RNN). Cách này giúp bạn nắm các sắc thái của RNN trước khi chuyển sang các mô hình phức tạp hơn.
Những thư viện sau đã được import sẵn cho bạn: torch, torch.nn dưới tên nn.
Biến data đã được khởi tạo với một đoạn trích từ tác phẩm Alice's Adventures in Wonderland của Lewis Carroll.
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
- Thêm một tầng RNN và một tầng tuyến tính vào lớp
RNNmodel. - Khởi tạo mô hình RNN với kích thước đầu vào bằng độ dài của
chars, kích thước ẩn là 16, và kích thước đầu ra bằng độ dài củachars.
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.
# Include an RNN layer and linear layer in RNNmodel class
class RNNmodel(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(RNNmodel, self).__init__()
self.hidden_size = hidden_size
self.rnn = nn.____(input_size, hidden_size, batch_first=True)
self.fc = nn.____(hidden_size, output_size)
def forward(self, x):
h0 = torch.zeros(1, x.size(0), self.hidden_size)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :])
return out
# Instantiate the RNN model
model = RNNmodel(____, ____, ____)