เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างข้อความด้วย RNN - การเทรนและการสร้างข้อความ

ทีม PyBooks ต้องการให้เทรนและทดสอบโมเดล RNN ซึ่งออกแบบมาเพื่อทำนายอักขระถัดไปในลำดับจากข้อมูลที่รับเข้ามา สำหรับใช้ในการเติมชื่อหนังสือโดยอัตโนมัติ โปรเจกต์นี้จะช่วยให้ทีมพัฒนาโมเดลสำหรับการเติมข้อความต่อไปได้

instance model ของคลาส RNNmodel ถูกโหลดไว้ให้แล้ว ตัวแปร data ผ่านการประมวลผลและเข้ารหัสเป็นลำดับข้อมูลแล้ว

ตัวแปร inputs และ targets ถูกโหลดไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Learning สำหรับข้อความด้วย PyTorch

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง loss function สำหรับคำนวณความผิดพลาดของโมเดล
  • สร้าง optimizer จากโมดูล optimization ของ PyTorch
  • รันกระบวนการเทรนโมเดลโดยตั้งค่าโมเดลเป็นโหมด train และรีเซ็ต gradient ก่อนดำเนินการ optimization step
  • หลังจากเทรนเสร็จแล้ว สลับโมเดลไปยังโหมดประเมินผลเพื่อทดสอบกับข้อมูลตัวอย่าง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Instantiate the loss function
criterion = nn.____()
# Instantiate the optimizer
optimizer = torch.optim.____(model.parameters(), lr=0.01)

# Train the model
for epoch in range(100):
    model.____()
    outputs = model(inputs)
    loss = criterion(outputs, targets)
    optimizer.____()
    loss.backward()
    optimizer.step()
    if (epoch+1) % 10 == 0:
        print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')

# Test the model
model.____()
test_input = char_to_ix['r']
test_input = nn.functional.one_hot(torch.tensor(test_input).view(-1, 1), num_classes=len(chars)).float()
predicted_output = model(test_input)
predicted_char_ix = torch.argmax(predicted_output, 1).item()
print(f"Test Input: 'r', Predicted Output: '{ix_to_char[predicted_char_ix]}'")
แก้ไขและรันโค้ด