cpuDeltaX¶
-
FullyConnectedLayer.
cpuDeltaX
()¶ CPUによるδxの計算
\[\delta x_{j} = \displaystyle \sum_i^y \delta z_i \cdot weight_{i,j}\]
ソース¶
cpuDeltaX(){
// 出力先
var output_idx = 0;
// バッチ内のデータに対し
for (var batch_idx = 0; batch_idx < miniBatchSize; batch_idx++) {
// 入力に対し
for (var x_idx = 0; x_idx < this.prevLayer.unitSize; x_idx++) {
var sum = 0.0;
// 重みの行とδzの内積
for (var k = 0; k < this.weight.nrow; k++) {
var weight_idx = k * this.weight.ncol + x_idx;
var delta_z_idx = batch_idx * this.unitSize + k;
sum += this.deltaZ.dt[delta_z_idx] * this.weight.dt[weight_idx];
}
this.deltaX.dt[output_idx] = sum;
output_idx++;
}
}
}