Tensor işlemleri
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 13/78
- 5 dk
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şmezEğ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
import torch
a = torch.tensor([[1., 2., 3.], [4., 5., 6.]])
# buraya yazÖrnek çözüm
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.
x.____(2)
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 |