use crate::{Matrix, Result};
use crate::ml::autograd::{
node::{GradNode, operation::GradNodeOperation},
tape::record_node,
};
use crate::ml::autograd::node::operation::GradNodeUpsample2d;
use crate::ml::matrix::UpsampleMode;
pub(in crate::ml) fn record_upsample_2d(
input: &Matrix,
scale_factor: usize,
mode: UpsampleMode,
result: &Matrix,
) -> Result<()> {
record_node(GradNode::Operation(GradNodeOperation::Upsample2d(
GradNodeUpsample2d {
input: input.clone(),
scale_factor,
mode,
output_id: result.value_id(),
},
)))
}