pub trait BatchNormalization: DeviceBase {
// Required methods
fn batch_norm_2d_forward_train<T: Num>(
momentum: f64,
x: Matrix<Ref<&T>, DimDyn, Self>,
y: Matrix<Ref<&mut T>, DimDyn, Self>,
scale: Matrix<Ref<&T>, DimDyn, Self>,
bias: Matrix<Ref<&T>, DimDyn, Self>,
mean: Matrix<Ref<&mut T>, DimDyn, Self>,
variance: Matrix<Ref<&mut T>, DimDyn, Self>,
saving_mean: Option<Matrix<Ref<&mut T>, DimDyn, Self>>,
saving_inv_variance: Option<Matrix<Ref<&mut T>, DimDyn, Self>>,
device_batch_norm: &Option<BatchNorm2dConfig<T>>,
);
fn batch_norm_2d_backward<T: Num>(
x: Matrix<Ref<&T>, DimDyn, Self>,
y_grad: Matrix<Ref<&T>, DimDyn, Self>,
x_grad: Matrix<Ref<&mut T>, DimDyn, Self>,
scale: Matrix<Ref<&T>, DimDyn, Self>,
scale_grad: Matrix<Ref<&mut T>, DimDyn, Self>,
bias_grad: Matrix<Ref<&mut T>, DimDyn, Self>,
saving_mean: Option<Matrix<Ref<&T>, DimDyn, Self>>,
saving_inv_variance: Option<Matrix<Ref<&T>, DimDyn, Self>>,
device_batch_norm_backward: &Option<BatchNorm2dBackwardConfig<T>>,
);
fn bach_norm_2d_forward_inference<T: Num>(
x: Matrix<Ref<&T>, DimDyn, Self>,
y: Matrix<Ref<&mut T>, DimDyn, Self>,
scale: Matrix<Ref<&T>, DimDyn, Self>,
bias: Matrix<Ref<&T>, DimDyn, Self>,
mean: Matrix<Ref<&T>, DimDyn, Self>,
variance: Matrix<Ref<&T>, DimDyn, Self>,
device_batch_norm_inference: &Option<BatchNorm2dInferenceConfig<T>>,
);
}
Required Methods§
fn batch_norm_2d_forward_train<T: Num>( momentum: f64, x: Matrix<Ref<&T>, DimDyn, Self>, y: Matrix<Ref<&mut T>, DimDyn, Self>, scale: Matrix<Ref<&T>, DimDyn, Self>, bias: Matrix<Ref<&T>, DimDyn, Self>, mean: Matrix<Ref<&mut T>, DimDyn, Self>, variance: Matrix<Ref<&mut T>, DimDyn, Self>, saving_mean: Option<Matrix<Ref<&mut T>, DimDyn, Self>>, saving_inv_variance: Option<Matrix<Ref<&mut T>, DimDyn, Self>>, device_batch_norm: &Option<BatchNorm2dConfig<T>>, )
fn batch_norm_2d_backward<T: Num>( x: Matrix<Ref<&T>, DimDyn, Self>, y_grad: Matrix<Ref<&T>, DimDyn, Self>, x_grad: Matrix<Ref<&mut T>, DimDyn, Self>, scale: Matrix<Ref<&T>, DimDyn, Self>, scale_grad: Matrix<Ref<&mut T>, DimDyn, Self>, bias_grad: Matrix<Ref<&mut T>, DimDyn, Self>, saving_mean: Option<Matrix<Ref<&T>, DimDyn, Self>>, saving_inv_variance: Option<Matrix<Ref<&T>, DimDyn, Self>>, device_batch_norm_backward: &Option<BatchNorm2dBackwardConfig<T>>, )
fn bach_norm_2d_forward_inference<T: Num>( x: Matrix<Ref<&T>, DimDyn, Self>, y: Matrix<Ref<&mut T>, DimDyn, Self>, scale: Matrix<Ref<&T>, DimDyn, Self>, bias: Matrix<Ref<&T>, DimDyn, Self>, mean: Matrix<Ref<&T>, DimDyn, Self>, variance: Matrix<Ref<&T>, DimDyn, Self>, device_batch_norm_inference: &Option<BatchNorm2dInferenceConfig<T>>, )
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.