LSTM ağı
Bildiğin gibi, düz RNN hücreleri pratikte pek sık kullanılmaz. Uzun dizileri çok daha iyi ele alan ve daha sık tercih edilen alternatif Long Short-Term Memory hücreleri, yani LSTM’lerdir. Bu egzersizde, bir LSTM ağını kendin kuracaksın!
Önceden kurduğun RNN ağından en önemli uygulama farkı, LSTM’lerin bir yerine iki gizli duruma sahip olmasıdır. Bu da ek bir gizli durumu başlatman ve LSTM hücresine iletmen gerektiği anlamına gelir.
torch ve torch.nn senin için zaten içe aktarıldı, haydi kodlamaya başla!
Bu egzersiz
PyTorch ile Orta Düzey Deep Learning
kursunun bir parçasıdırEgzersiz talimatları
.__init__()metodunda bir LSTM katmanı tanımla veself.lstm’e ata.forward()metodunda ilk uzun dönem bellek gizli durumunuc0sıfırlarla başlat.forward()metodunda,LSTMkatmanına üç girdiyi de ilet: güncel zaman adımının girdileri ve iki gizli durumu içeren bir demet.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
class Net(nn.Module):
def __init__(self, input_size):
super().__init__()
# Define lstm layer
____ = ____(
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)
# Initialize long-term memory
c0 = ____
# Pass all inputs to lstm layer
out, _ = ____
out = self.fc(out[:, -1, :])
return out