gpuDeltaWeight¶
-
FullyConnectedLayer.
gpuDeltaWeight
()¶ GPUによるδweightの計算
\[\delta weight_{i,j} = \delta z_{i} \cdot x_{j}\]
ソース¶
gpuDeltaWeight(){
var vertex_shader = Shaders.FullyConnectedLayer_DeltaWeight;
var prev_layer = this.prevLayer;
var vertex_shader = vertex_shader
.replace(/miniBatchSize/g, miniBatchSize.toString())
.replace(/WeightColSize/g, prev_layer.unitSize.toString());
var param_id = "Fully-Connected-Layer-delta-weight," + miniBatchSize + "," + prev_layer.unitSize + "," + this.unitSize;
if (this.params[param_id] == undefined){
this.params[param_id] = {
id : param_id,
vertexShader: vertex_shader,
args : {
"zero": new Float32Array(this.deltaWeight.dt.length),
"prev_y": makeTextureInfo(WebGL2, "float", new ArrayView(miniBatchSize, prev_layer.unitSize)),
"deltaZ": makeTextureInfo(WebGL2, "float", this.deltaZ),
"deltaWeight" : this.deltaWeight.dt
}
};
}
var param = this.params[param_id];
param.args["prev_y"].value = prev_layer.y_.dt;;
param.args["deltaZ"].value = this.deltaZ.dt;
param.args["deltaWeight"].value = this.deltaWeight.dt;
WebGL2.compute(param);
}