pub struct Execution { /* private fields */ }Implementations§
Source§impl Execution
impl Execution
pub fn new(compilation: &mut Compilation) -> Result<Self>
Sourcepub fn set_input<T>(&mut self, input_list_idx: i32, input: &[T]) -> Result<()>
pub fn set_input<T>(&mut self, input_list_idx: i32, input: &[T]) -> Result<()>
Examples found in repository?
examples/add_arrays.rs (line 25)
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}pub unsafe fn set_input_raw( &mut self, input_list_idx: i32, buffer: *const c_void, length: usize, ) -> Result<()>
Sourcepub fn set_output<T>(
&mut self,
output_list_idx: i32,
output: &mut [T],
) -> Result<()>
pub fn set_output<T>( &mut self, output_list_idx: i32, output: &mut [T], ) -> Result<()>
Examples found in repository?
examples/add_arrays.rs (line 29)
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}pub unsafe fn set_output_raw( &mut self, output_list_idx: i32, buffer: *mut c_void, length: usize, ) -> Result<()>
Sourcepub fn compute(&mut self) -> Result<Event>
pub fn compute(&mut self) -> Result<Event>
Examples found in repository?
examples/add_arrays.rs (line 31)
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}pub fn burst_compute(&mut self, burst: &mut Burst) -> Result<()>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Execution
impl RefUnwindSafe for Execution
impl !Send for Execution
impl !Sync for Execution
impl Unpin for Execution
impl UnwindSafe for Execution
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