Linear
Tam bağlı katman, ağırlık düzeni ve analitik türevler.
01Kurucu ve parametreler#
Linear(in_features,out_features,use_bias=true). Boyutlar pozitif olmalıdır. weight() [out,in] Parameter, bias() [out] Parameter döndürür; bias kapalıysa nullptr olur. Ağırlık Kaiming uniform, bias sıfır ile başlar.
Linear layer(64,128,true);auto x=Tensor::zeros({4,16,64});auto y=layer.forward(x); // [4,16,128]02İleri geçiş#
Son eksen in_features ile eşleşir. Önceki eksenler düzleştirilmiş satırlar olarak işlenir ve çıktıda korunur. W=[out,in] düzeni fiziksel ağırlık transpozisyonu gerektirmez.
03Analitik geri geçiş#
dY=[M,O], X=[M,I], W=[O,I]. Katman dX tamponunu sıfırlar, dW/db mevcut birikime eklenir. requires_grad=false yalnız ilgili parametre katkısını kapatır.
04Hesap maliyeti#
İleri çarpım yaklaşık 2MIO FLOP, ağırlıklar bias hariç 4IO bayt gerektirir. Eğitimde gradyanlar ve önbellekler ek bellek tutar. Aynı modülde yeni forward eski backward önbelleğini değiştirir.