pub trait NnefInterface: Sized {
type Model: ModelInterface;
Show 17 methods
// Required methods
fn model_for_path(&self, path: impl AsRef<Path>) -> Result<Self::Model>;
fn transform_model(
&self,
model: &mut Self::Model,
transform_spec: &str,
) -> Result<()>;
fn enable_tract_core(&mut self) -> Result<()>;
fn enable_tract_extra(&mut self) -> Result<()>;
fn enable_tract_transformers(&mut self) -> Result<()>;
fn enable_onnx(&mut self) -> Result<()>;
fn enable_pulse(&mut self) -> Result<()>;
fn enable_extended_identifier_syntax(&mut self) -> Result<()>;
fn write_model_to_dir(
&self,
path: impl AsRef<Path>,
model: &Self::Model,
) -> Result<()>;
fn write_model_to_tar(
&self,
path: impl AsRef<Path>,
model: &Self::Model,
) -> Result<()>;
fn write_model_to_tar_gz(
&self,
path: impl AsRef<Path>,
model: &Self::Model,
) -> Result<()>;
// Provided methods
fn with_tract_core(self) -> Result<Self> { ... }
fn with_tract_extra(self) -> Result<Self> { ... }
fn with_tract_transformers(self) -> Result<Self> { ... }
fn with_onnx(self) -> Result<Self> { ... }
fn with_pulse(self) -> Result<Self> { ... }
fn with_extended_identifier_syntax(self) -> Result<Self> { ... }
}
Expand description
an implementation of tract’s NNEF framework object
Entry point for NNEF model manipulation: loading from file, dumping to file.
Required Associated Types§
type Model: ModelInterface
Required Methods§
Sourcefn model_for_path(&self, path: impl AsRef<Path>) -> Result<Self::Model>
fn model_for_path(&self, path: impl AsRef<Path>) -> Result<Self::Model>
Load a NNEF model from the path into a tract-core model.
path
can point to a directory, atar
file or atar.gz
file.
Sourcefn transform_model(
&self,
model: &mut Self::Model,
transform_spec: &str,
) -> Result<()>
fn transform_model( &self, model: &mut Self::Model, transform_spec: &str, ) -> Result<()>
Transform model according to transform spec
Sourcefn enable_tract_core(&mut self) -> Result<()>
fn enable_tract_core(&mut self) -> Result<()>
Allow the framework to use tract_core extensions instead of a stricter NNEF definition.
Sourcefn enable_tract_extra(&mut self) -> Result<()>
fn enable_tract_extra(&mut self) -> Result<()>
Allow the framework to use tract_extra extensions.
Sourcefn enable_tract_transformers(&mut self) -> Result<()>
fn enable_tract_transformers(&mut self) -> Result<()>
Allow the framework to use tract_transformers extensions to support common transformer operators.
Sourcefn enable_onnx(&mut self) -> Result<()>
fn enable_onnx(&mut self) -> Result<()>
Allow the framework to use tract_onnx extensions to support operators in ONNX that are absent from NNEF.
Sourcefn enable_pulse(&mut self) -> Result<()>
fn enable_pulse(&mut self) -> Result<()>
Allow the framework to use tract_pulse extensions to support stateful streaming operation.
Sourcefn enable_extended_identifier_syntax(&mut self) -> Result<()>
fn enable_extended_identifier_syntax(&mut self) -> Result<()>
Allow the framework to use a tract-proprietary extension that can support special characters in node names. If disable, tract will replace everything by underscore ‘_’ to keep compatibility with NNEF. If enabled, the extended syntax will be used, allowing to maintain the node names in serialized form.
Sourcefn write_model_to_dir(
&self,
path: impl AsRef<Path>,
model: &Self::Model,
) -> Result<()>
fn write_model_to_dir( &self, path: impl AsRef<Path>, model: &Self::Model, ) -> Result<()>
Dump a TypedModel as a NNEF directory.
path
is the directory name to dump to
Sourcefn write_model_to_tar(
&self,
path: impl AsRef<Path>,
model: &Self::Model,
) -> Result<()>
fn write_model_to_tar( &self, path: impl AsRef<Path>, model: &Self::Model, ) -> Result<()>
Dump a TypedModel as a NNEF tar file.
This function creates a plain, non-compressed, archive.
path
is the archive name
fn write_model_to_tar_gz( &self, path: impl AsRef<Path>, model: &Self::Model, ) -> Result<()>
Provided Methods§
Sourcefn with_tract_core(self) -> Result<Self>
fn with_tract_core(self) -> Result<Self>
Convenience function, similar with enable_tract_core but allowing method chaining.
Sourcefn with_tract_extra(self) -> Result<Self>
fn with_tract_extra(self) -> Result<Self>
Convenience function, similar with enable_tract_core but allowing method chaining.
Sourcefn with_tract_transformers(self) -> Result<Self>
fn with_tract_transformers(self) -> Result<Self>
Convenience function, similar with enable_tract_transformers but allowing method chaining.
Sourcefn with_onnx(self) -> Result<Self>
fn with_onnx(self) -> Result<Self>
Convenience function, similar with enable_onnx but allowing method chaining.
Sourcefn with_pulse(self) -> Result<Self>
fn with_pulse(self) -> Result<Self>
Convenience function, similar with enable_pulse but allowing method chaining.
Sourcefn with_extended_identifier_syntax(self) -> Result<Self>
fn with_extended_identifier_syntax(self) -> Result<Self>
Convenience function, similar with enable_extended_identifier_syntax but allowing method chaining.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.