CodeBlanks Logo Icon CodeBlanks

input_size

input_size, LSTM'a giren özellik vektörünün boyutudur.

input_size

input_size, her zaman adımındaki girdi vektörünün boyutudur: zaman serisinde ölçülen değişken sayısı, metinde gömme boyutu. Dizinin uzunluğu bir parametre değildir; her çağrıda farklı olabilir:

lstm = nn.LSTM(input_size=3, hidden_size=16, batch_first=True)
print(lstm(torch.zeros(2, 10, 3))[0].shape)    # torch.Size([2, 10, 16])
print(lstm(torch.zeros(2, 50, 3))[0].shape)    # torch.Size([2, 50, 16])
# lstm(torch.zeros(2, 10, 4))   hata: input_size 3 bekleniyor

Metin modellerinde input_size gömme katmanının embedding_dim'ine eşit olmalıdır.

Parametre sayısı

LSTM dört bileşeni (f, i, g, o) birlikte hesapladığı için parametreleri RNN'in dört katıdır: 4·(H·I + H·H + 2H):

lstm = nn.LSTM(3, 16)
for ad, p in lstm.named_parameters():
    print(ad, tuple(p.shape))
# weight_ih_l0 (64, 3)  weight_hh_l0 (64, 16)  bias_ih_l0 (64,)  bias_hh_l0 (64,)
print(sum(p.numel() for p in lstm.parameters()))   # 4·(48 + 256 + 32) = 1344

64 satır, dört kapının 16'şar satırının alt alta dizilmesidir.

Uygulama LSTM parametreleri

nn.LSTM(5, 32) ve nn.RNN(5, 32) katmanlarının parametre sayılarını aynı satırda yazdır. Ardından LSTM'in weight_ih_l0 şeklini yazdır.

Başlangıç kodu

model.py
import torch
from torch import nn

# buraya yaz

Örnek çözüm

model.py
import torch
from torch import nn

lstm = nn.LSTM(5, 32)
rnn = nn.RNN(5, 32)
say = lambda m: sum(p.numel() for p in m.parameters())
print(say(lstm), say(rnn))
print(lstm.weight_ih_l0.shape)

Beklenen çıktı

4992 1248
torch.Size([128, 5])

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Sıcaklık, nem ve rüzgâr hızı ölçülen bir hava serisinde <code>input_size</code> kaçtır?

  • 3 Doğru cevap
  • Dizi uzunluğu
  • 1
  • Gizli boyut

Açıklama: Her zaman adımında 3 değişken ölçülür.

2 Her adımda 5 özellik alan LSTM kur.

Soru
lstm = nn.LSTM(____=5, hidden_size=32, batch_first=True)
Cevap
lstm = nn.LSTM(input_size=5, hidden_size=32, batch_first=True)

Açıklama: input_size adım başına özellik sayısıdır.

3 Değerleri eşleştir (I=3, H=16).

Kavram Anlamı
weight_ih_l0 (64, 3)
weight_hh_l0 (64, 16)
bias_ih_l0 (64,)
toplam 1344

İleri seviye bölümündeki tüm dersler