netGradientCheck¶
-
NeuralNetwork.
netGradientCheck
(batch_Y, exp_work, costs)¶ 勾配の計算のチェック
引数: - batch_Y (float[]) – 正解の出力
- exp_work (float[]) – 作業用データ
- costs (float[]) – ミニバッチ内のコストの配列
ソース¶
netGradientCheck(batch_Y, exp_work, costs){
inGradientCheck = true;
var last_layer = this.layers[this.layers.length - 1];
var last_delta_y = new Float32Array(last_layer.deltaY.dt);
for (var batch_idx = 0; batch_idx < miniBatchSize; batch_idx++){
last_layer.deltaY.dt = new Float32Array(last_delta_y.length);
for(var i = 0; i < last_layer.unitSize; i++){
var k = batch_idx * last_layer.unitSize + i;
last_layer.deltaY.dt[k] = last_delta_y[k];
}
for (var i = this.layers.length - 1; 1 <= i; i--) {
this.layers[i].backpropagation();
}
for(var layer_idx = 0; layer_idx < this.layers.length; layer_idx++){
console.log("勾配確認 %s", this.layers[layer_idx].constructor.name);
this.layers[layer_idx].gradientCheck(batch_Y, exp_work, costs[batch_idx], batch_idx, layer_idx);
}
}
inGradientCheck = false;
}