MulaiMulai sekarang secara gratis

Jaringan LSTM

Seperti yang sudah Anda ketahui, sel RNN biasa tidak terlalu sering digunakan dalam praktik. Alternatif yang lebih sering dipakai dan jauh lebih baik dalam menangani urutan panjang adalah Long Short-Term Memory (LSTM). Pada latihan ini, Anda akan membangun jaringan LSTM sendiri!

Perbedaan implementasi terpenting dibandingkan jaringan RNN yang Anda buat sebelumnya berasal dari fakta bahwa LSTM memiliki dua status tersembunyi, bukan satu. Artinya, Anda perlu menginisialisasi status tersembunyi tambahan ini dan meneruskannya ke sel LSTM.

torch dan torch.nn sudah diimpor untuk Anda, jadi mulailah menulis kode!

Latihan ini adalah bagian dari kursus

Deep Learning Lanjutan dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Di metode .__init__(), definisikan sebuah layer LSTM dan tetapkan ke self.lstm.
  • Di metode forward(), inisialisasi status tersembunyi memori jangka panjang pertama c0 dengan nol.
  • Di metode forward(), teruskan ketiga masukan ke layer LSTM: masukan pada langkah waktu saat ini, serta sebuah tuple yang berisi dua status tersembunyi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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
Edit dan Jalankan Kode