Evrişim katmanları
Conv1D/2D/3D, groups, dilation ve depthwise.
01Kurucular ve veri düzeni#
Conv1D/2D/3D(in_channels,out_channels,kernel,stride=1,padding=0,dilation=1,groups=1,bias=true). Girdi [N,C,L], [N,C,H,W] veya [N,C,D,H,W]. W=[K,C/groups,çekirdek...]. Giriş ve çıkış kanalları groups ile bölünebilmelidir. Kanal-last desteklenmez.
02Çıktı boyutu#
Her uzamsal eksen bağımsız hesaplanır. padding sıfır dolgu, dilation çekirdek örnekleri arasındaki aralıktır. Conv2D eksen başına kernel/stride/padding/dilation alan uzun bir kurucu da sunar.
Conv2D conv(3,32,3,1,1);auto x=Tensor::zeros({8,3,28,28});auto y=conv.forward(x); // [8,32,28,28]03Çapraz korelasyon ve im2col#
Çekirdek ters çevrilmez: çapraz korelasyon uygulanır. im2col pencereleri çalışma alanına açar, GEMM filtrelerle çarpar. Backward dW ve db biriktirir; col2im örtüşen giriş katkılarını toplar. Workspace maliyeti çekirdek hacmi ve çıktı konumlarıyla büyür.
04DepthwiseConv2D#
DepthwiseConv2D(channels,kernel,stride=1,padding=0), groups=channels ve out_channels=channels kullanır. Kanal çarpanı seçeneği yoktur. Ardından 1×1 Conv2D ile kanallar karıştırılabilir. 21 Ekim 2026 akşamı, bu Ryzen 7 5800H üzerinde, rakip protokolündeki CPU Conv2d PyTorch’un 31.6 GFLOPS değerinin gerisindeydi. Nexus o akşam yaklaşık 4.9 ile 6.8 GFLOPS arasındaydı. Depthwise AVX, aynı sütunda PyTorch 4.93 ve TensorFlow 0.688 değerlerinin önündeydi. Bu bir dünya sıralaması değildir.