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, kursun bir parçasıdır
PyTorch ile Orta Düzey Deep Learning
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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