การสร้างโมเดล RNN สำหรับการสร้างข้อความ
ที่ PyBooks คุณได้รับมอบหมายให้พัฒนาอัลกอริทึมสำหรับการสร้างข้อความ โดยโปรเจกต์นี้เน้นการเติมชื่อหนังสือให้สมบูรณ์อัตโนมัติ คุณจึงตัดสินใจทดลองใช้ Recurrent Neural Network (RNN) เพื่อทำความเข้าใจรายละเอียดของ RNN ก่อนจะก้าวไปสู่โมเดลที่ซับซ้อนยิ่งขึ้น
มีการ import ให้แล้ว ได้แก่: torch และ torch.nn ในชื่อ nn
ตัวแปร data ถูกกำหนดค่าเริ่มต้นด้วยข้อความตัดตอนจาก Alice's Adventures in Wonderland ของ Lewis Carroll
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning สำหรับข้อความด้วย PyTorch
คำแนะนำการฝึกหัด
- เพิ่มเลเยอร์ RNN และเลเยอร์เชิงเส้น (linear layer) ในคลาส
RNNmodel - สร้าง instance ของโมเดล RNN โดยกำหนด input size เป็นความยาวของ
chars, hidden size เป็น 16 และ output size เป็นความยาวของchars
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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(____, ____, ____)