CodeBlanks Logo Icon CodeBlanks

Tensor işlemleri

Tensorlar üzerinde toplama, çarpma ve reshape işlemleri yapılır.

Tensör işlemleri

Aritmetik işlemler eleman bazlıdır ve yayınlama NumPy kurallarıyla çalışır. Matris çarpımı @ ya da torch.matmul ile yapılır:

a = torch.tensor([[1., 2.], [3., 4.]])
b = torch.tensor([10., 20.])
print((a + b).tolist())    # [[11.0, 22.0], [13.0, 24.0]]  yayınlama
print((a @ a).tolist())    # [[7.0, 10.0], [15.0, 22.0]]
print(a.sum(dim=0).tolist())   # [4.0, 6.0]  sütun toplamı

PyTorch'ta NumPy'daki axis yerine dim yazılır (çoğu fonksiyon ikisini de kabul eder).

Yerinde işlemler

Alt çizgiyle biten yöntemler tensörü yerinde değiştirir: x.add_(1), x.mul_(2), x.zero_(). Bellekten kazandırır ama autograd ile birlikte dikkatli kullanılmalıdır; geri yayılım için gereken bir değerin üzerine yazmak hata üretir.

x = torch.tensor([1., 2., 3.])
x.mul_(2)
print(x.tolist())     # [2.0, 4.0, 6.0]
y = x.add(1)          # yeni tensör; x değişmez

Eğitim döngüsünde ağırlık güncellemesi ve gradyan sıfırlama optimize edici tarafından yerinde yapılır.

Uygulama Temel işlemler

a matrisi için satır ortalamalarını (mean(dim=1)), a @ a.T sonucunu ve a'nın en büyük elemanını tolist()/item() ile alt alta yazdır.

Başlangıç kodu

model.py
import torch

a = torch.tensor([[1., 2., 3.], [4., 5., 6.]])

# buraya yaz

Örnek çözüm

model.py
import torch

a = torch.tensor([[1., 2., 3.], [4., 5., 6.]])

print(a.mean(dim=1).tolist())
print((a @ a.T).tolist())
print(a.max().item())

Beklenen çıktı

[2.0, 5.0]
[[14.0, 32.0], [32.0, 77.0]]
6.0

Soru ve cevaplar

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

1 <code>torch.tensor([[1, 2], [3, 4]]).sum(dim=1).tolist()</code> neyi verir?

  • [4, 6]
  • 10
  • [1, 2, 3, 4]
  • [3, 7] Doğru cevap

Açıklama: dim=1 satır içinde toplar: 1+2 = 3, 3+4 = 7.

2 Tensörü yerinde ikiyle çarp.

Soru
x.____(2)
Cevap
x.mul_(2)

Açıklama: Sondaki alt çizgi yerinde işlem demektir.

3 İşlemleri eşleştir.

Kavram Anlamı
a * b Eleman bazlı çarpım
a @ b Matris çarpımı
a.sum(dim=0) Sütun toplamı
x.add_(1) Yerinde toplama

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