Skip to main content

struct

Model

Represents a model that's loaded and ready for execution.

Do not instantiate this object directly. Instead, create it with InferenceSession.load(). For example:

var session = engine.InferenceSession()
var model = session.load("bert-base-uncased")

Then you can run inference by passing your inputs to execute() as a NumPy array, a TensorMap, or one of the other tensor types.

Implemented traits

AnyType, CollectionElement, Copyable, Movable

Methods

__moveinit__

__moveinit__(inout self: Self, owned existing: Self)

Move initializer for model.

Args:

  • existing (Self): Model to move.

__del__

__del__(owned self: Self)

Destructor for Model.

execute

execute(self: Self, inputs: TensorMap) -> TensorMap

Execute model with given inputs.

Args:

  • inputs (TensorMap): A tensor map with input names as keys and inputs as values.

Returns:

A TensorMap with output names as keys.

execute(self: Self, inputs: PythonObject) -> TensorMap

Execute model with given inputs.

Args:

  • inputs (PythonObject): Inputs as a Python object, which must be a dictionary with string keys (matching input names) and NumPy array values.

Returns:

A TensorMap with output names as keys.

execute(self: Self, *inputs: NamedTensor) -> TensorMap

Execute model with given inputs.

Args:

  • *inputs (NamedTensor): A variadic list of NamedTensor values.

Returns:

A TensorMap with output names as keys.

execute(self: Self, *inputs: Tuple[StringLiteral, EngineNumpyView]) -> TensorMap

Execute model with given inputs.

Args:

  • *inputs (Tuple[StringLiteral, EngineNumpyView]): A variadic list of tuples with first element of tuple is input name and second element is non owning view of a Numpy array.

Returns:

A TensorMap with output names as keys.

execute[type: DType](self: Self, name: String, input: Tensor[type]) -> TensorMap

Execute model with given input.

Parameters:

  • type (DType): DType of input tensor.

Args:

  • name (String): Name of the input tensor.
  • input (Tensor[type]): Input tensor to the model.

Returns:

A TensorMap with output names as keys.

execute(self: Self, name: String, inout input: PythonObject) -> TensorMap

Execute model with given input.

Args:

  • name (String): Name of the input tensor.
  • input (PythonObject): Input to the model as numpy array.

Returns:

A TensorMap with output names as keys.

execute[type1: DType, type2: DType](self: Self, name1: String, input1: Tensor[type1], name2: String, input2: Tensor[type2]) -> TensorMap

Execute model with given inputs.

Parameters:

  • type1 (DType): DType of first input tensor.
  • type2 (DType): DType of second input tensor.

Args:

  • name1 (String): Name of the first input tensor.
  • input1 (Tensor[type1]): First Input tensor to the model.
  • name2 (String): Name of the second input tensor.
  • input2 (Tensor[type2]): Second Input tensor to the model.

Returns:

A TensorMap with output names as keys.

execute(self: Self, name1: String, inout input1: PythonObject, name2: String, inout input2: PythonObject) -> TensorMap

Execute model with given inputs.

Args:

  • name1 (String): Name of the first input tensor.
  • input1 (PythonObject): First Input to the model as numpy array.
  • name2 (String): Name of the second input tensor.
  • input2 (PythonObject): Second Input to the model as numpy array.

Returns:

A TensorMap with output names as keys.

execute[type1: DType, type2: DType, type3: DType](self: Self, name1: String, input1: Tensor[type1], name2: String, input2: Tensor[type2], name3: String, input3: Tensor[type3]) -> TensorMap

Execute model with given inputs.

Parameters:

  • type1 (DType): DType of first input tensor.
  • type2 (DType): DType of second input tensor.
  • type3 (DType): DType of third input tensor.

Args:

  • name1 (String): Name of the first input tensor.
  • input1 (Tensor[type1]): First Input tensor to the model.
  • name2 (String): Name of the second input tensor.
  • input2 (Tensor[type2]): Second Input tensor to the model.
  • name3 (String): Name of the third input tensor.
  • input3 (Tensor[type3]): Third Input tensor to the model.

Returns:

A TensorMap with output names as keys.

execute(self: Self, name1: String, inout input1: PythonObject, name2: String, inout input2: PythonObject, name3: String, inout input3: PythonObject) -> TensorMap

Execute model with given inputs.

Args:

  • name1 (String): Name of the first input tensor.
  • input1 (PythonObject): First Input to the model as numpy array.
  • name2 (String): Name of the second input tensor.
  • input2 (PythonObject): Second Input to the model as numpy array.
  • name3 (String): Name of the third input tensor.
  • input3 (PythonObject): Third Input to the model as numpy array.

Returns:

A TensorMap with output names as keys.

num_model_inputs

num_model_inputs(self: Self) -> Int

Gets the number of inputs of the model.

Returns:

Number of inputs of model.

get_model_input_names

get_model_input_names(self: Self) -> List[String]

Gets the names of model inputs.

Returns:

Input names of the model.

num_model_outputs

num_model_outputs(self: Self) -> Int

Gets the number of outputs of the model.

Returns:

Number of model outputs.

get_model_output_names

get_model_output_names(self: Self) -> List[String]

Gets the names of model outputs.

Returns:

Output names of the model.

get_model_input_metadata

get_model_input_metadata(self: Self) -> List[EngineTensorSpec]

Get metadata about the model's input tensors, as a list of EngineTensorSpec objects.

Returns:

Metadata list of the model's input tensors.

get_model_output_metadata

get_model_output_metadata(self: Self) -> List[EngineTensorSpec]

Get metadata about the model's output tensors, as a list of EngineTensorSpec objects.

Returns:

Metadata list of the model's output tensors.