maxPool1dGPU function
GPUTensor<Vector>
maxPool1dGPU(
- GPUTensor<
Vector> input, - int poolSize,
- int stride,
- CommandBuffer tape,
Implementation
GPUTensor<Vector> maxPool1dGPU(GPUTensor<Vector> input, int poolSize, int stride, CommandBuffer tape) {
int inputSize = input.shape[0];
int outputSize = (inputSize - poolSize) ~/ stride + 1;
GPUTensor<Vector> out = GPUTensor<Vector>(List<double>.filled(outputSize, 0.0));
GPUTensor<Vector> indices = GPUTensor<Vector>(List<double>.filled(outputSize, 0.0));
tape.putInt(OP_MAX_POOL_1D_FORWARD);
tape.putString(input.id);
tape.putString(out.id);
tape.putString(indices.id);
tape.putInt(poolSize);
tape.putInt(stride);
out.creator = GPUNode(
[input],
(CommandBuffer bTape) {
bTape.putInt(OP_MAX_POOL_1D_BACKWARD);
bTape.putString('${out.id}_grad');
bTape.putString(indices.id);
bTape.putString('${input.id}_grad');
},
opName: 'maxPool1dGPU',
cost: inputSize,
);
return out;
}