pub struct Compilation { /* private fields */ }Implementations§
Source§impl Compilation
impl Compilation
pub fn new(model: &mut Model) -> Result<Self>
Sourcepub fn finish(&mut self) -> Result<()>
pub fn finish(&mut self) -> Result<()>
Examples found in repository?
examples/add_arrays.rs (line 21)
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 create_execution(&mut self) -> Result<Execution>
pub fn create_execution(&mut self) -> Result<Execution>
Examples found in repository?
examples/add_arrays.rs (line 22)
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§
Source§impl Deref for Compilation
impl Deref for Compilation
Source§impl DerefMut for Compilation
impl DerefMut for Compilation
Auto Trait Implementations§
impl Freeze for Compilation
impl RefUnwindSafe for Compilation
impl !Send for Compilation
impl !Sync for Compilation
impl Unpin for Compilation
impl UnwindSafe for Compilation
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