Özet - Tensor işlemleri
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 18/78
- 6 dk
Bu grupta tensor shape, dtype ve reshape işlemlerini öğrendin.
Özet: tensör işlemleri
Bu grupta:
- Eleman bazlı işlemler, yayınlama,
@;dimile eksen seçimi;_ile yerinde işlemler. shapetakibi,unsqueeze/squeeze.- Türler: float32 (varsayılan), float16/bfloat16 (yarım), int64 (etiket), bool (maske); bellek = eleman boyutu × sayı.
view/reshape,permute,flatten(1).- İndeksleme,
argmax,gather, doğruluk hesabı.
Uygulama Toplu işlem
(5, 3) şekilli logitlere satır başına softmax uygula (torch.softmax(logit, dim=1)) ve satır toplamlarını round(..., 3) ile liste olarak yazdır. Ardından her satırın en olası sınıfını ve bu sınıfın olasılığını max(dim=1) ile al; sınıfları tolist() ile yazdır.
Başlangıç kodu
import torch
logit = torch.tensor([[1., 2., 0.], [3., 0., 0.], [0., 0., 2.], [1., 1., 3.], [0., 4., 1.]])
# buraya yazÖrnek çözüm
import torch
logit = torch.tensor([[1., 2., 0.], [3., 0., 0.], [0., 0., 2.], [1., 1., 3.], [0., 4., 1.]])
p = torch.softmax(logit, dim=1)
print([round(v, 3) for v in p.sum(dim=1).tolist()])
olasilik, sinif = p.max(dim=1)
print(sinif.tolist())Beklenen çıktı
[1.0, 1.0, 1.0, 1.0, 1.0] [1, 0, 2, 2, 1]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir CNN çıktısını (32, 64, 7, 7) doğrusal katmana vermeden önce hangi işlem gerekir?
- unsqueeze(0)
- Hiçbiri
- flatten(1) ile (32, 3136)'ya düzleştirmek Doğru cevap
- permute
Açıklama: Doğrusal katman (örnek, özellik) ister; 64 × 7 × 7 = 3136.
2 Toplu boyut dışındaki tüm eksenleri düzleştir.
d = x.____(1)
d = x.flatten(1)
Açıklama: flatten(1) ilk ekseni korur, kalanları birleştirir.
3 Fonksiyonları eşleştir.
| Kavram | Anlamı |
|---|---|
unsqueeze |
Eksen ekler |
permute |
Eksenleri sıralar |
flatten |
Düzleştirir |
gather |
İndeksle seçer |