pub struct EdgeImpulseModel {
backend: Box<dyn InferenceBackend>,
}
Expand description
Main Edge Impulse model interface that abstracts over different backends
This struct provides a unified interface for running inference on Edge Impulse models, regardless of whether you’re using EIM binary communication or FFI direct calls. The backend is automatically selected based on the constructor used.
§Examples
use edge_impulse_runner::EdgeImpulseModel;
// EIM mode (default)
let mut model = EdgeImpulseModel::new("model.eim")?;
// FFI mode
let mut model = EdgeImpulseModel::new_ffi(false)?;
// Run inference
let result = model.infer(vec![0.1, 0.2, 0.3], None)?;
Fields§
§backend: Box<dyn InferenceBackend>
Implementations§
Source§impl EdgeImpulseModel
impl EdgeImpulseModel
Sourcepub fn new<P: AsRef<Path>>(model_path: P) -> Result<Self, EdgeImpulseError>
pub fn new<P: AsRef<Path>>(model_path: P) -> Result<Self, EdgeImpulseError>
Create a new model instance using EIM backend
Sourcepub fn new_with_socket<P: AsRef<Path>>(
model_path: P,
socket_path: P,
) -> Result<Self, EdgeImpulseError>
pub fn new_with_socket<P: AsRef<Path>>( model_path: P, socket_path: P, ) -> Result<Self, EdgeImpulseError>
Create a new model instance using EIM backend with custom socket path
Sourcepub fn new_with_debug<P: AsRef<Path>>(
model_path: P,
debug: bool,
) -> Result<Self, EdgeImpulseError>
pub fn new_with_debug<P: AsRef<Path>>( model_path: P, debug: bool, ) -> Result<Self, EdgeImpulseError>
Create a new model instance using EIM backend with debug output
Sourcepub fn new_ffi(debug: bool) -> Result<Self, EdgeImpulseError>
pub fn new_ffi(debug: bool) -> Result<Self, EdgeImpulseError>
Create a new model instance using FFI backend
Sourcepub fn infer(
&mut self,
features: Vec<f32>,
debug: Option<bool>,
) -> Result<InferenceResponse, EdgeImpulseError>
pub fn infer( &mut self, features: Vec<f32>, debug: Option<bool>, ) -> Result<InferenceResponse, EdgeImpulseError>
Run inference on the provided features
Sourcepub fn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>
pub fn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>
Get model parameters
Sourcepub fn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>
pub fn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>
Get sensor type
Sourcepub fn input_size(&self) -> Result<usize, EdgeImpulseError>
pub fn input_size(&self) -> Result<usize, EdgeImpulseError>
Get input size
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EdgeImpulseModel
impl !RefUnwindSafe for EdgeImpulseModel
impl Send for EdgeImpulseModel
impl Sync for EdgeImpulseModel
impl Unpin for EdgeImpulseModel
impl !UnwindSafe for EdgeImpulseModel
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