mseGPU function
Appends commands for calculating the mean square error over between the vectors predictions and targets to tape.
Implementation
GPUTensor<Scalar> mseGPU(GPUTensor<Vector> predictions,
GPUTensor<Vector> targets, CommandBuffer tape,
{GPUTensor<Scalar>? outTensor}) {
GPUTensor<Scalar> out = outTensor ?? GPUTensor<Scalar>(0.0);
tape.putInt(OP_MSE_LOSS_FORWARD);
tape.putString(predictions.id);
tape.putString(targets.id);
tape.putString(out.id);
out.creator = GPUNode(
[predictions, targets],
(CommandBuffer bTape) {
bTape.putInt(OP_MSE_LOSS_BACKWARD);
// CORRECT ORDER:
bTape.putString(out.gradId); // 1. gradOut
bTape.putString(predictions.id); // 2. namePred
bTape.putString(targets.id); // 3. nameTarget
bTape.putString(predictions.gradId); // 4. gradIn
},
opName: 'mseGPU',
cost: 3 * predictions.shape[0],
);
return out;
}