CodeBlanks Logo Icon CodeBlanks

Özet - Tensor işlemleri

Bu grupta tensor shape, dtype ve reshape işlemlerini öğrendin.

Özet: tensör işlemleri

Bu grupta:

  • Eleman bazlı işlemler, yayınlama, @; dim ile eksen seçimi; _ ile yerinde işlemler.
  • shape takibi, 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

model.py
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

model.py
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.

Soru
d = x.____(1)
Cevap
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

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