pub struct ModelProto {
pub ir_version: i64,
pub opset_import: Vec<OperatorSetIdProto>,
pub producer_name: String,
pub producer_version: String,
pub domain: String,
pub model_version: i64,
pub doc_string: String,
pub graph: Option<GraphProto>,
pub metadata_props: Vec<StringStringEntryProto>,
pub training_info: Vec<TrainingInfoProto>,
pub functions: Vec<FunctionProto>,
pub configuration: Vec<DeviceConfigurationProto>,
}Expand description
Models
ModelProto is a top-level file/container format for bundling a ML model and associating its computation graph with metadata.
The semantics of the model are described by the associated GraphProto’s.
Fields§
§ir_version: i64The version of the IR this model targets. See Version enum above. This field MUST be present.
opset_import: Vec<OperatorSetIdProto>The OperatorSets this model relies on. All ModelProtos MUST have at least one entry that specifies which version of the ONNX OperatorSet is being imported.
All nodes in the ModelProto’s graph will bind against the operator with the same-domain/same-op_type operator with the HIGHEST version in the referenced operator sets.
producer_name: StringThe name of the framework or tool used to generate this model. This field SHOULD be present to indicate which implementation/tool/framework emitted the model.
producer_version: StringThe version of the framework or tool used to generate this model. This field SHOULD be present to indicate which implementation/tool/framework emitted the model.
domain: StringDomain name of the model.
We use reverse domain names as name space indicators. For example:
com.facebook.fair or com.microsoft.cognitiveservices
Together with model_version and GraphProto.name, this forms the unique identity of
the graph.
model_version: i64The version of the graph encoded. See Version enum below.
doc_string: StringA human-readable documentation for this model. Markdown is allowed.
graph: Option<GraphProto>The parameterized graph that is evaluated to execute the model.
metadata_props: Vec<StringStringEntryProto>Named metadata values; keys should be distinct.
training_info: Vec<TrainingInfoProto>Training-specific information. Sequentially executing all stored
TrainingInfoProto.algorithms and assigning their outputs following
the corresponding TrainingInfoProto.update_bindings is one training
iteration. Similarly, to initialize the model
(as if training hasn’t happened), the user should sequentially execute
all stored TrainingInfoProto.initializations and assigns their outputs
using TrainingInfoProto.initialization_bindings.
If this field is empty, the training behavior of the model is undefined.
functions: Vec<FunctionProto>A list of function protos local to the model.
The (domain, name, overload) tuple must be unique across the function protos in this list. In case of any conflicts the behavior (whether the model local functions are given higher priority, or standard operator sets are given higher priority or this is treated as error) is defined by the runtimes.
The operator sets imported by FunctionProto should be compatible with the ones imported by ModelProto and other model local FunctionProtos. Example, if same operator set say ‘A’ is imported by a FunctionProto and ModelProto or by 2 FunctionProtos then versions for the operator set may be different but, the operator schema returned for op_type, domain, version combination for both the versions should be same for every node in the function body.
One FunctionProto can reference other FunctionProto in the model, however, recursive reference is not allowed.
configuration: Vec<DeviceConfigurationProto>Describes different target configurations for a multi-device use case. A model MAY describe multiple multi-device configurations for execution.
Trait Implementations§
Source§impl Clone for ModelProto
impl Clone for ModelProto
Source§fn clone(&self) -> ModelProto
fn clone(&self) -> ModelProto
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModelProto
impl Debug for ModelProto
Source§impl Default for ModelProto
impl Default for ModelProto
Source§fn default() -> ModelProto
fn default() -> ModelProto
Source§impl Message for ModelProto
impl Message for ModelProto
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
self. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
self.