pub struct Operand {
pub inner: ANeuralNetworksOperandType,
pub len: usize,
pub dimensions: Vec<u32>,
}Fields§
§inner: ANeuralNetworksOperandType§len: usize§dimensions: Vec<u32>Implementations§
Source§impl Operand
impl Operand
Sourcepub fn tensor(
dtype: OperandCode,
dimensions: Vec<u32>,
scale: f32,
zero_point: i32,
) -> Self
pub fn tensor( dtype: OperandCode, dimensions: Vec<u32>, scale: f32, zero_point: i32, ) -> Self
Examples found in repository?
examples/add_arrays.rs (line 5)
4fn main() -> nnapi::Result<()> {
5 let tensor9x_type = Operand::tensor(OperandCode::ANEURALNETWORKS_TENSOR_FLOAT32, vec![9], 0., 0);
6
7 let mut model = Model::from_operands([
8 tensor9x_type.clone(),
9 tensor9x_type.clone(),
10 Operand::activation(),
11 tensor9x_type,
12 ])?;
13
14 model.set_activation_operand_value(2)?;
15 model.add_operation(OperationCode::ANEURALNETWORKS_ADD, &[0, 1, 2], &[3])?;
16 model.identify_inputs_and_outputs(&[0, 1], &[3])?;
17
18 model.finish()?;
19
20 let mut compilation = model.compile()?;
21 compilation.finish()?;
22 let mut execution = compilation.create_execution()?;
23
24 // mind datatype: by default, it's f64, but we need f32
25 execution.set_input(0, &[1f32; 9])?;
26 execution.set_input(1, &[2f32; 9])?;
27
28 let mut output = [0f32; 9];
29 execution.set_output(0, &mut output)?;
30
31 let mut end_event = execution.compute()?;
32 end_event.wait()?;
33
34 assert_eq!(output, [3f32; 9]);
35
36 Ok(())
37}Sourcepub fn activation() -> Self
pub fn activation() -> Self
Examples found in repository?
examples/add_arrays.rs (line 10)
4fn main() -> nnapi::Result<()> {
5 let tensor9x_type = Operand::tensor(OperandCode::ANEURALNETWORKS_TENSOR_FLOAT32, vec![9], 0., 0);
6
7 let mut model = Model::from_operands([
8 tensor9x_type.clone(),
9 tensor9x_type.clone(),
10 Operand::activation(),
11 tensor9x_type,
12 ])?;
13
14 model.set_activation_operand_value(2)?;
15 model.add_operation(OperationCode::ANEURALNETWORKS_ADD, &[0, 1, 2], &[3])?;
16 model.identify_inputs_and_outputs(&[0, 1], &[3])?;
17
18 model.finish()?;
19
20 let mut compilation = model.compile()?;
21 compilation.finish()?;
22 let mut execution = compilation.create_execution()?;
23
24 // mind datatype: by default, it's f64, but we need f32
25 execution.set_input(0, &[1f32; 9])?;
26 execution.set_input(1, &[2f32; 9])?;
27
28 let mut output = [0f32; 9];
29 execution.set_output(0, &mut output)?;
30
31 let mut end_event = execution.compute()?;
32 end_event.wait()?;
33
34 assert_eq!(output, [3f32; 9]);
35
36 Ok(())
37}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Operand
impl RefUnwindSafe for Operand
impl !Send for Operand
impl !Sync for Operand
impl Unpin for Operand
impl UnwindSafe for Operand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more