input_size
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 56/78
- 5 dk
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 bekleniyorMetin 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) = 134464 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
import torch
from torch import nn
# buraya yazÖrnek çözüm
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.
lstm = nn.LSTM(____=5, hidden_size=32, batch_first=True)
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 |