pub trait InferenceBackend: Send + Sync {
// Required methods
fn new(config: BackendConfig) -> Result<Self, EdgeImpulseError>
where Self: Sized;
fn infer(
&mut self,
features: Vec<f32>,
debug: Option<bool>,
) -> Result<InferenceResponse, EdgeImpulseError>;
fn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>;
fn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>;
fn input_size(&self) -> Result<usize, EdgeImpulseError>;
fn set_debug_callback(&mut self, callback: Box<dyn Fn(&str) + Send + Sync>);
fn normalize_visual_anomaly(
&self,
anomaly: f32,
max: f32,
mean: f32,
regions: &[(f32, u32, u32, u32, u32)],
) -> VisualAnomalyResult;
}
Expand description
Trait for inference backends
Required Methods§
Sourcefn new(config: BackendConfig) -> Result<Self, EdgeImpulseError>where
Self: Sized,
fn new(config: BackendConfig) -> Result<Self, EdgeImpulseError>where
Self: Sized,
Create a new backend instance
Sourcefn infer(
&mut self,
features: Vec<f32>,
debug: Option<bool>,
) -> Result<InferenceResponse, EdgeImpulseError>
fn infer( &mut self, features: Vec<f32>, debug: Option<bool>, ) -> Result<InferenceResponse, EdgeImpulseError>
Run inference on features
Sourcefn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>
fn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>
Get model parameters
Sourcefn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>
fn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>
Get sensor type
Sourcefn input_size(&self) -> Result<usize, EdgeImpulseError>
fn input_size(&self) -> Result<usize, EdgeImpulseError>
Get input size