forward¶
-
ConvolutionalLayer.
forward
()¶ 順伝播
ソース¶
forward() {
var lap = new Lap(this.forwardTime);
this.gpuForward();
lap.Time();
if(miniBatchIdx == 0 || Math_random() < 0.01){
var z_gpu_dt = new Float32Array(this.z_.dt);
var y_gpu_dt = new Float32Array(this.y_.dt);
this.cpuForward();
var max_diff = 0;
// 出力先
var output_idx = 0;
for (var batch_idx = 0; batch_idx < miniBatchSize; batch_idx++) {
for (var channel_idx = 0; channel_idx < this.numChannels; channel_idx++) {
for (var r1 = 0; r1 < this.numRows; r1++) {
for (var c1 = 0; c1 < this.numCols; c1++) {
var diff = Math.max(Math.abs(z_gpu_dt[output_idx] - this.z_.dt[output_idx]), Math.abs(y_gpu_dt[output_idx] - this.y_.dt[output_idx]));
if (max_diff < diff) {
if(0.001 < diff){
console.log("CNN forward : %dx%d %d %d %d %d %f", this.numRows, this.numCols, batch_idx, channel_idx, r1, c1, diff)
}
max_diff = diff;
}
output_idx++;
}
}
}
}
}
lap.Time();
}