CodeBlanks Logo Icon CodeBlanks

Matris çarpımı

Matris çarpımı, np.dot() veya @ operatörü ile yapılır.

Matris çarpımı

(m, n) şekilli A ile (n, p) şekilli B çarpılınca (m, p) şekilli bir matris çıkar. Sonucun her elemanı, A'nın bir satırı ile B'nin bir sütununun nokta çarpımıdır.

A = np.array([[1, 2],
              [3, 4]])
B = np.array([[5, 6],
              [7, 8]])
print(A @ B)   # [[19 22] [43 50]]
# 19 = 1*5 + 2*7

A * B ise eleman bazlı çarpımdır ve tamamen farklı bir sonuç verir: [[5 12] [21 32]].

Toplu tahmin

Matris çarpımı tüm örneklerin tahminini tek işlemde verir. Doğrusal modelde X @ w + b, sinir ağı katmanında X @ W + b yazılır:

X = np.array([[1, 2],
              [3, 4],
              [5, 6]])   # 3 örnek, 2 özellik
w = np.array([0.5, 1.0])
print(X @ w + 1)         # [3.5 6.5 9.5]

Derin öğrenmenin hızı, GPU'ların bu çarpımları çok paralel yapabilmesinden gelir.

Uygulama Tüm örnekleri tahmin et

X (4 örnek, 2 özellik) ve w ile tüm tahminleri X @ w + b ile hesapla. Tahminleri ve şeklini yazdır.

Başlangıç kodu

model.py
import numpy as np

X = np.array([[1, 1], [2, 0], [0, 3], [4, 2]])
w = np.array([3, -2])
b = 5

# buraya yaz

Örnek çözüm

model.py
import numpy as np

X = np.array([[1, 1], [2, 0], [0, 3], [4, 2]])
w = np.array([3, -2])
b = 5

tahmin = X @ w + b
print(tahmin)
print(tahmin.shape)

Beklenen çıktı

[ 6 11 -1 13]
(4,)

Soru ve cevaplar

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

1 (4, 3) şekilli X ile (3, 2) şekilli W çarpılırsa <code>X @ W</code>'nin şekli nedir?

  • (4, 3)
  • Hata
  • (4, 2) Doğru cevap
  • (3, 3)

Açıklama: İç boyutlar (3) eşleşir ve kaybolur; dış boyutlar (4, 2) kalır.

2 Matris çarpımını yap.

Soru
C = A ____ B
Cevap
C = A @ B

Açıklama: @ matris çarpımıdır; * eleman bazlıdır.

3 Şekilleri eşleştir.

Kavram Anlamı
(2, 3) @ (3, 4) (2, 4)
(5, 2) @ (2,) (5,)
(3, 3) @ (3, 1) (3, 1)
(2, 3) @ (2, 3) Hata

Başlangıç bölümündeki tüm dersler