globalAveragePoolingGPU function
Implementation
GPUTensor<Vector> globalAveragePoolingGPU(
GPUTensor<Matrix> input,
CommandBuffer tape) {
//int sequenceLength = input.shape[0];
int dModel = input.shape[1];
List<int> outShape = <int>[dModel];
GPUTensor<Vector> out = GPUTensor<Vector>.empty(outShape);
tape.putInt(OP_GLOBAL_AVG_POOL_FORWARD);
tape.putString(input.id);
tape.putString(out.id);
out.creator = GPUNode(
<GPUTensor>[input],
(CommandBuffer backwardTape) {
backwardTape.putInt(OP_GLOBAL_AVG_POOL_BACKWARD);
backwardTape.putString('${out.id}_grad');
backwardTape.putString('${input.id}_grad');
},
opName: 'global_avg_pool_gpu',
);
return out;
}