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

PyTorch cat ile tensörler hangi eksende birleştirilir?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
PyTorch’ta torch.cat(), tensörleri seçtiğiniz dim ekseni boyunca birleştirir. Birleştirilmeyen diğer eksenlerdeki boyutlar aynı olmalıdır. İki boyutlu tensörlerde dim=0 satırları, dim=1 sütunları birleştirir. Sonuçta eksen sayısı değişmez; yalnızca seçilen eksenin boyutu büyür.

Temel kullanım​


Python:
import torch

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

b = torch.tensor([[5, 6],
                  [7, 8]])

satirlar = torch.cat((a, b), dim=0)
sutunlar = torch.cat((a, b), dim=1)

print(satirlar)
print(sutunlar)

Bu örnekte iki tensörün şekli de (2, 2) değerindedir. dim=0 seçildiğinde satır ekseni boyunca birleşir ve sonuç şekli (4, 2) olur:

Kod:
tensor([[1, 2],
        [3, 4],
        [5, 6],
        [7, 8]])

dim=1 seçildiğinde sütun ekseni boyunca birleşir ve sonuç şekli (2, 4) olur:

Kod:
tensor([[1, 2, 5, 6],
        [3, 4, 7, 8]])

Dolayısıyla “hangi eksende birleştirilir?” sorusunun cevabı sabit değildir: eksen, dim parametresiyle belirlenir.

Şekil uyumluluğu nasıl kontrol edilir?​


torch.cat((x, y), dim=k) kullanırken tensörlerin k dışındaki bütün eksenlerde aynı boyuta sahip olması gerekir. Birleştirme yapılan eksenin boyutu ise farklı olabilir.

Örneğin (2, 3) ve (4, 3) şekilli tensörler dim=0 ile birleştirilebilir; çünkü ikinci eksen olan sütun sayısı ikisinde de 3 değerindedir. Sonuç şekli (6, 3) olur.

Buna karşılık (2, 3) ve (4, 2) tensörleri dim=0 ile birleştirilemez. Birleştirilmeyen sütun eksenlerinin boyutları 3 ve 2 olduğu için boyut uyumsuzluğu hatası alınır.

Eksen seçimi için kısa karşılaştırma​


Aşağıdaki örnek, iki boyutlu tensörlerde dim değerinin sonucu nasıl değiştirdiğini gösterir.
KullanımBirleşen eksenÖrnek sonuç şekli
torch.cat((a, b), dim=0)0. eksen, genellikle satırlar(4, 2)
torch.cat((a, b), dim=1)1. eksen, genellikle sütunlar(2, 4)
torch.cat((a, b), dim=-1)Son eksenİki boyutlu tensörde dim=1 ile aynı
Üç veya daha fazla boyutlu tensörlerde “satır” ve “sütun” ifadeleri tek başına yeterli olmayabilir. Bu durumda önce tensörün şeklini inceleyin:

Python:
x = torch.zeros(2, 3, 4)
y = torch.zeros(2, 3, 5)

print(x.shape)
print(y.shape)

Ardından büyütmek istediğiniz boyutu dim olarak seçin. Negatif eksen numaraları sondan sayılır; dim=-1 son ekseni, dim=-2 sondan ikinci ekseni belirtir.

cat ile stack arasındaki fark​


torch.cat() mevcut eksenlerden birinin boyutunu büyütür ve tensörün boyut sayısını değiştirmez. torch.stack() ise tensörleri yeni bir eksen ekleyerek birleştirir.

Örneğin iki adet (2, 3) tensör için cat(..., dim=0) sonucu (4, 3) olur. stack(..., dim=0) sonucu ise (2, 2, 3) olur. Aynı şekle sahip örnekleri yeni bir grup veya yığın boyutunda tutmak istiyorsanız stack; var olan satır, sütun ya da başka bir eksen boyunca devam ettirmek istiyorsanız cat kullanın.
 

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