use ndarray::{Array1, CowArray, IxDyn};
use ort::{Environment, GraphOptimizationLevel, SessionBuilder, Value};
use std::sync::Arc;
pub fn run_identity() -> Result<(), Box<dyn std::error::Error>> {
let env = Arc::new(Environment::builder().with_name("id").build()?);
let session = SessionBuilder::new(&env)?
.with_optimization_level(GraphOptimizationLevel::Level3)?
.with_model_from_file("models/identity_v8.onnx")?;
let input = Array1::<f32>::from_vec(vec![2.0]);
let input_cow: CowArray<f32, IxDyn> = CowArray::from(input.into_dyn());
let input_tensor = Value::from_array(session.allocator(), &input_cow)?;
let outputs = session.run(vec![input_tensor])?;
let output = outputs[0].try_extract::<f32>()?;
let output_view = output.view();
println!("out = {:?}", output_view.as_slice().unwrap());
Ok(())
}