Model Class
Loaded form of an MPK; the simplified entry point to run inference on Modalix. More...
Declaration
Included Headers
Enumerations Index
| enum class | Stage { ... } |
|
Selector for fragment(Stage) and backend_fragment(Stage). More... | |
Friends Index
| struct | internal::ModelAccess |
Public Constructors Index
| Model (const std::string &mpk_path) | |
|
Load and validate an MPK at the given path with default options. More... | |
| Model (const std::string &mpk_path, const Options &opt) | |
|
Load and validate an MPK with explicit options. More... | |
| Model (Model &&) noexcept | |
|
Move-constructible. More... | |
Public Destructor Index
| ~Model () | |
|
Destructor; releases the impl and (optionally) cleans up extracted MPK data. More... | |
Public Operators Index
| Model & | operator= (Model &&) noexcept |
|
Move-assignable. (Models are not copyable.) More... | |
Public Member Functions Index
| simaai::neat::NodeGroup | preprocess () const |
|
Returns the preprocess portion of the model's pipeline as a NodeGroup. More... | |
| simaai::neat::NodeGroup | inference () const |
|
Returns the MLA inference portion of the model's pipeline as a NodeGroup. More... | |
| simaai::neat::NodeGroup | postprocess () const |
|
Returns the postprocess portion of the model's pipeline as a NodeGroup. More... | |
| simaai::neat::NodeGroup | session () const |
|
Returns the model's full pipeline as a single NodeGroup (preprocess + inference + postprocess). More... | |
| simaai::neat::NodeGroup | session (SessionOptions opt) const |
|
Returns the model's full pipeline as a NodeGroup with custom session options. More... | |
| TensorSpec | input_spec () const |
|
Single-input convenience accessor for input_specs().front(). More... | |
| std::vector< TensorSpec > | input_specs () const |
|
Returns the expected input tensor specs (one per ingress port for multi-input models). More... | |
| TensorSpec | output_spec () const |
|
Single-output convenience accessor for output_specs().front(). More... | |
| std::vector< TensorSpec > | output_specs () const |
|
Returns the produced output tensor specs (multiple for multi-head models). More... | |
| int | compiled_batch_size () const |
|
Returns the batch size the model was compiled with. More... | |
| ResolvedPreprocessPlan | resolved_preprocess_plan () const |
|
Returns the full resolved preprocess plan (intent-driven; richer than preprocess_requirements()). More... | |
| PreprocessRequirements | preprocess_requirements () const |
|
Returns concrete preprocess parameters (resize, color, quant, tess) the model needs. More... | |
| ModelInfo | info () const |
|
Returns the full diagnostic snapshot of the loaded model and its route. More... | |
| std::unordered_map< std::string, std::string > | metadata () const |
|
Returns free-form key/value metadata declared by the model author in the manifest. More... | |
| NodeGroup | fragment (Stage stage) const |
|
Returns one specific stage of the pipeline as a NodeGroup. More... | |
| std::string | backend_fragment (Stage stage) const |
|
Returns the GStreamer launch fragment for one specific stage (debugging / Session::custom() use). More... | |
| simaai::neat::InputOptions | input_appsrc_options (bool tensor_mode) const |
|
Returns the appsrc input options the planner derived for a given input mode (tensor or media). More... | |
| std::vector< simaai::neat::InputOptions > | input_appsrc_options_list (bool tensor_mode) const |
|
Per-input variant of input_appsrc_options for multi-input models. More... | |
| std::string | find_config_path_by_plugin (const std::string &plugin_id) const |
|
Find the path to a per-stage config file in the extracted MPK by plugin ID. More... | |
| std::string | find_config_path_by_processor (const std::string &processor) const |
|
Find the path to a per-stage config file in the extracted MPK by processor name (CVU/MLA/APU). More... | |
| std::string | infer_output_name () const |
|
Returns the canonical output element name for the inference stage (used in pipeline string emission). More... | |
| Runner | build () |
|
Build a long-lived Runner from this Model with default options. More... | |
| Runner | build (const SessionOptions &opt) |
| Runner | build (const simaai::neat::RunOptions &run_opt) |
| Runner | build (const SessionOptions &opt, const simaai::neat::RunOptions &run_opt) |
|
Build a Runner with explicit session and runtime options. More... | |
| Runner | build (const simaai::neat::TensorList &inputs, const SessionOptions &opt=default_session_options(), const simaai::neat::RunOptions &run_opt=default_run_options()) |
|
Build a Runner and seed the build with sample input(s). More... | |
| Runner | build (const simaai::neat::SampleList &inputs, const SessionOptions &opt=default_session_options(), const simaai::neat::RunOptions &run_opt=default_run_options()) |
|
Build variant that seeds with full Sample inputs (carrying per-buffer metadata). More... | |
| simaai::neat::TensorList | run (const simaai::neat::TensorList &inputs, int timeout_ms=-1) |
|
One-shot inference: build, push, pull, return — for the simplest applications. More... | |
| simaai::neat::SampleList | run (const simaai::neat::SampleList &inputs, int timeout_ms=-1) |
Private Member Attributes Index
| std::unique_ptr< Impl > | impl_ |
Private Static Functions Index
| static const SessionOptions & | default_session_options () |
| static const simaai::neat::RunOptions & | default_run_options () |
Description
Loaded form of an MPK; the simplified entry point to run inference on Modalix.
A Model owns an extracted MPK directory, the parsed manifest, and the route plan derived from it. Once constructed it exposes:
- **NodeGroup fragments** — preprocess(), inference(), postprocess(), session() — for composing into a user-built Session.
- **run(input)** convenience methods that build a one-shot Session, push the input, pull the result, and tear down. The shortest path from "I have a tensor" to "here are detections."
- **build(...)** that returns a long-lived Runner for streaming use cases (push many inputs over time, pull results asynchronously).
- Introspection (input_spec(), output_spec(), info(), metadata()) so application code can ask the Model what shape/dtype/topology it expects and produces.
For applications that need more control (custom pre/post nodes, multiple cameras, RTSP server output), graduate from Model::run() to composing a Session that includes model.session() plus your own input/output nodes.
- See Also
- See Also
"Model is a Session in disguise" (§0.12 of the design deep dive)
Definition at line 77 of file Model.h.
Enumerations
Stage
| strong |
Selector for fragment(Stage) and backend_fragment(Stage).
- Enumeration values
Lets advanced users grab one specific portion of the model's pipeline.
Friends
internal::ModelAccess
|
Definition at line 578 of file Model.h.
Public Constructors
Model()
| explicit |
Load and validate an MPK at the given path with default options.
Equivalent to Model(mpk_path, Options{}). The constructor extracts the tarball, validates the manifest (rejecting malformed or malicious archives), and runs the route planner. Throws SessionError on any failure (with a structured SessionReport).
- Parameters
-
mpk_path Filesystem path to a .tar.gz / .tgz / .mpk / .tar file.
- Exceptions
-
<a href="/reference/cppapi/classes/simaai-neat-sessionerror">SessionError</a> on archive validation failure, manifest parse error, or unsupported route.
Model()
| explicit |
Load and validate an MPK with explicit options.
- Parameters
-
mpk_path Filesystem path to a .tar.gz / .tgz / .mpk / .tar file.
opt Options controlling preprocess, postprocess decode, naming, lifecycle, and verbosity.
- Exceptions
-
<a href="/reference/cppapi/classes/simaai-neat-sessionerror">SessionError</a> on archive validation failure, manifest parse error, or unsupported route.
Model()
Public Member Functions
backend_fragment()
|
Returns the GStreamer launch fragment for one specific stage (debugging / Session::custom() use).
build()
|
Build a long-lived Runner from this Model with default options.
Use this for streaming workloads (push many inputs over time, pull asynchronously). For one-shot inference, prefer run().
- Returns
A Runner ready for push/pull.
- Exceptions
-
<a href="/reference/cppapi/classes/simaai-neat-sessionerror">SessionError</a> on validation or build failure (with structured SessionReport).
build()
|
build()
|
build()
|
build()
|
Build a Runner and seed the build with sample input(s).
Seeding the build with an input lets the planner perform build-time adaptation: tightening caps to match the actual input shape, picking concrete pixel formats, validating that the input is compatible. The BuildAdaptationSummary in the resulting SessionReport records what adaptations were applied.
build()
|
compiled_batch_size()
|
Returns the batch size the model was compiled with.
Defaults to 1 when the model is not batched. Callers that drive multiple logical inferences per push/pull cycle should use this to size their input batches. The same value is prepended to input_specs()[i].shape when batch > 1.
find_config_path_by_plugin()
|
find_config_path_by_processor()
|
fragment()
|
infer_output_name()
|
inference()
|
info()
|
input_appsrc_options()
|
input_appsrc_options_list()
|
input_spec()
|
Single-input convenience accessor for input_specs().front().
input_specs()
|
metadata()
|
output_spec()
|
Single-output convenience accessor for output_specs().front().
output_specs()
|
postprocess()
|
preprocess()
|
preprocess_requirements()
|
resolved_preprocess_plan()
|
Returns the full resolved preprocess plan (intent-driven; richer than preprocess_requirements()).
run()
|
One-shot inference: build, push, pull, return — for the simplest applications.
Equivalent to build(inputs).run(inputs, timeout_ms) but cheaper because the Runner is scoped to the call. Use this for unit tests, single-image inference, batch processing.
- Parameters
-
inputs Input tensors (one per ingress port).
timeout_ms Maximum wait for the result, in milliseconds; -1 waits forever.
- Returns
The output tensor list.
- Exceptions
-
<a href="/reference/cppapi/classes/simaai-neat-sessionerror">SessionError</a> on build failure or pull timeout/error.
run()
|
session()
|
session()
|
Private Static Functions
default_run_options()
| static |
default_session_options()
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.