GRU network
นอกจาก LSTM แล้ว อีกหนึ่ง recurrent neural network ที่ได้รับความนิยมคือ Gated Recurrent Unit หรือ GRU จุดเด่นของมันอยู่ที่ความเรียบง่าย: GRU cell ใช้การคำนวณน้อยกว่า LSTM cell แต่มักให้ประสิทธิภาพที่เทียบเท่ากันได้
โค้ดที่ให้มาคือนิยามโมเดล RNN ที่เคยเขียนไว้ก่อนหน้านี้ ให้ปรับโค้ดนี้เพื่อให้ได้ GRU network แทน โดย torch และ torch.nn as nn ได้ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
คำแนะนำการฝึกหัด
- อัปเดตนิยามโมเดล RNN เพื่อให้ได้ GRU network โดยกำหนด GRU layer ไว้ที่
self.gru
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Net(nn.Module):
def __init__(self):
super().__init__()
# Define RNN layer
self.rnn = nn.RNN(
input_size=1,
hidden_size=32,
num_layers=2,
batch_first=True,
)
self.fc = nn.Linear(32, 1)
def forward(self, x):
h0 = torch.zeros(2, x.size(0), 32)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :])
return out