pub trait OpTrait {
fn get_handle(&self) -> &OpHandle;
fn get_handle_mut(&mut self) -> &mut OpHandle;
fn get_name(&self) -> String;
fn get_input_size(&self) -> usize;
fn get_output_size(&self) -> usize;
fn apply(&self, input: &[Tensor], output: &[Tensor]);
fn grad(
&self,
input: &[Tensor],
output_grad: &[Tensor],
input_grad: &[Tensor]
);
fn get_values(&self) -> Vec<&Tensor>;
fn set_values(&self, v: &[Tensor]);
fn get_grads(&self) -> Vec<&Tensor>;
}Required methods
fn get_handle(&self) -> &OpHandle
fn get_handle_mut(&mut self) -> &mut OpHandle
fn get_input_size(&self) -> usize
fn get_input_size(&self) -> usize
The number of input needs by this op.
fn get_output_size(&self) -> usize
fn get_output_size(&self) -> usize
The number of output produced by this op.
Given the forward input value and backward output_grad, Update weight gradient. return backward input gradeint.
fn get_values(&self) -> Vec<&Tensor>
fn get_values(&self) -> Vec<&Tensor>
access weight values