Expand description
Rust binding for Menoh
§Example
fn main() -> Result<(), menoh::Error> {
let mut model = menoh::Builder::from_onnx("MLP.onnx")?
.add_input::<f32>("input", &[2, 3])?
.add_output("fc2")?
.build("mkldnn", "")?;
let (in_dims, in_buf) = model.get_variable_mut::<f32>("input")?;
in_buf.copy_from_slice(&[0., 1., 2., 3., 4., 5.]);
println!("in:");
println!(" dims: {:?}", in_dims);
println!(" buf: {:?}", in_buf);
model.run()?;
let (out_dims, out_buf) = model.get_variable::<f32>("fc2")?;
println!("out:");
println!(" dims: {:?}", out_dims);
println!(" buf: {:?}", out_buf);
Ok(())
}§Usage
§1. Build a Model.
let mut model = menoh::Builder::from_onnx("MLP.onnx")?
// register `"input"` as input
// and specify its type (`f32`) and shape (`&[2, 3]`).
.add_input::<f32>("input", &[2, 3])?
// register `"fc2"` as output.
.add_output("fc2")?
// specify backend (`"mkldnn"`) and its configuration (`""`).
.build("mkldnn", "")?;Instead of Builder, we can use a combination of some low-level APIs.
let mut model_data = menoh::ModelData::from_onnx("MLP.onnx")?;
let mut vpt_builder = menoh::VariableProfileTableBuilder::new()?;
vpt_builder.add_input::<f32>("input", &[2, 3])?;
vpt_builder.add_output("fc2")?;
let vpt = vpt_builder.build(&model_data)?;
model_data.optimize(&vpt)?;
let model_builder = menoh::ModelBuilder::new(&vpt)?;
let mut model = model_builder.build(model_data, "mkldnn", "")?;§2. Set data to input variable(s).
// fetch a read/write view of a variable.
let (in_dims, in_buf) = model.get_variable_mut::<f32>("input")?;
// set data to the variable.
in_buf.copy_from_slice(&[0., 1., 2., 3., 4., 5.]);§3. Execute computation.
model.run()?;§4. Fetch the result(s).
// fetch a read-only view of a variable.
let (out_dims, out_buf) = model.get_variable::<f32>("fc2")?;
// use the data (e.g. print them).
println!("{:?}", out_buf);Structs§
- Builder
- Helper to build
Model. - Model
- Model, which executes computation.
- Model
Builder - Builder for
Model. - Model
Data - Container of operators and values of constant variables.
- Variable
Profile Table - Container of variable profiles (type, shape and flag of input/output).
- Variable
Profile Table Builder - Builder for
VariableProfileTable.
Enums§
Traits§
- Dtype
- Representation of scalar types supported by Menoh.