• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

TensorFlow matmul ile tensör çarpımı nasıl yapılır?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni

Temel kullanım​


TensorFlow’da tensör çarpımı için tf.matmul() kullanılır. İki matrisin iç boyutları aynı olmalıdır: (m, n) şekilli bir tensör ile (n, p) şekilli tensör çarpıldığında sonuç (m, p) şekline sahip olur. Aşağıdaki örnekte işlem yapılır, sonuç yazdırılır ve elde edilen değerlerin nasıl hesaplandığı görülür.

Python:
import tensorflow as tf

A = tf.constant([
    [1.0, 2.0],
    [3.0, 4.0]
])

B = tf.constant([
    [5.0, 6.0],
    [7.0, 8.0]
])

C = tf.matmul(A, B)

print(C)

Bu örnekte beklenen sonuç şudur:

Kod:
[[19. 22.]
 [43. 50.]]

İlk sonuç satırındaki 19 değeri, 1×5 + 2×7 hesabından gelir. Aynı şekilde 22 = 1×6 + 2×8 olur. Sonuç tensörü (2, 2) şeklindedir; çünkü (2, 2) ile (2, 2) çarpılmıştır.

Şekil uyumluluğunu kontrol etme​


Normal matris çarpımında ilk tensörün son boyutu ile ikinci tensörün sondan ikinci boyutu eşit olmalıdır. İki boyutlu matrislerde bu, ikinci matrisin ilk boyutudur; daha yüksek boyutlarda öndeki eksenler toplu işlem içindir. Örneğin (2, 3) ve (3, 4) şekillerindeki tensörler çarpılabilir ve (2, 4) sonucunu üretir. Buna karşılık (2, 3) ile (2, 4) doğrudan çarpılamaz; iç boyutlar 3 ve 2 eşit değildir.

İşlemden önce şekilleri görmek için şu kontrolü kullanabilirsiniz:

Python:
print(A.shape)
print(B.shape)
print(C.shape)

Bir boyutun çalışma sırasında belirlenmesi nedeniyle None görünmesi, o boyutun henüz sabitlenmediğini gösterir; bu tek başına çarpımın hatalı olduğu anlamına gelmez. Ancak işlem anında uyumsuz gerçek boyutlar verilirse TensorFlow hata üretir.

Değişken tensörlerle kullanım​


Model eğitimi gibi durumlarda değerler genellikle tf.Variable veya başka işlemlerden üretilen tensörlerden gelir. tf.matmul() bunlarla da aynı şekilde kullanılabilir:

Python:
import tensorflow as tf

A = tf.Variable([
    [1.0, 2.0, 3.0]
])

B = tf.constant([
    [4.0],
    [5.0],
    [6.0]
])

sonuc = tf.matmul(A, B)
print(sonuc)

Burada A şekli (1, 3), B şekli (3, 1) ve sonuç şekli (1, 1) olur. Tek sonuç değeri 1×4 + 2×5 + 3×6 = 32 hesabından gelir.

Transpoze ederek çarpma​


Bir tensörü önce transpoze ederek çarpmak gerekiyorsa transpose_a veya transpose_b seçeneklerini kullanabilirsiniz. Bu seçenekler, tensörü ayrıca tf.transpose() ile oluşturmadan matmul işleminin ilgili girdiyi transpoze kabul etmesini sağlar.

Python:
import tensorflow as tf

A = tf.constant([
    [1.0, 2.0, 3.0],
    [4.0, 5.0, 6.0]
])

B = tf.constant([
    [1.0, 2.0],
    [3.0, 4.0]
])

sonuc = tf.matmul(A, B, transpose_a=True, transpose_b=False)
print(sonuc)

Bu örnekte transpose_a=True, A’nın son iki boyutunu yer değiştirir. Böylece (3, 2) ile (2, 2) çarpılır ve (3, 2) sonuç alınır: satırlar sırasıyla (13, 18), (17, 24) ve (21, 30) olur. Transpoze seçeneği her boyut hatasını çözmez; işlem sonrasındaki iç boyutları kontrol edin.

Toplu veya daha yüksek boyutlu tensörler​


tf.matmul() yalnızca iki boyutlu matrislerle sınırlı değildir. Daha yüksek boyutlu girdilerde son iki boyut matris olarak çarpılır; önceki boyutlar toplu işlem boyutlarıdır. Örneğin (10, 2, 3) şekilli bir tensör ile (10, 3, 4) şekilli bir tensör, karşılık gelen 10 matris çifti için çarpılabilir ve sonuç (10, 2, 4) olur.

Bu kullanımda özellikle toplu boyutların birbiriyle uyumlu olduğundan emin olun. Sadece tek bir matris çarpımı yapmak istiyorsanız girdilerin şekillerini print(tensor.shape) ile kontrol edip gereksiz ek boyutları kaldırmanız gerekebilir. tf.matmul() eleman eleman çarpma yapmaz; her konumdaki değerleri doğrudan birbirleriyle çarpmak istiyorsanız farklı bir işlem gerekir.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst