# tensorplay.onnx API Source: https://www.tensorplay.cn/docs/api/tensorplay.onnx.html ## Functions 6 [#](#api-tensorplay.onnx.export) ### export function[Full reference ↗](/docs/generated/tensorplay.onnx.export.html) ```python tensorplay.onnx.export(exported_program: ExportedProgram | Any, f: Any = None, *, input_names: Sequence[str] | None = None, output_names: Sequence[str] | None = None, opset_version: int | None = None, dynamic_axes: Mapping[str, Mapping[int, str] | Sequence[int]] | None = None, do_constant_folding: bool = True, verify: bool = False, rtol: float = 0.0001, atol: float = 1e-05, external_data: bool | None = None, external_data_location: str | None = None, check_model: bool = True) → Any ``` Export a TensorPlay model to ONNX. Parameters: - exported_program – an [ExportedProgram](/docs/generated/tensorplay.export.ExportedProgram.html#tensorplay.export.ExportedProgram), or a (model, *args, kwargs) sequence captured on the fly. - f – file path or writable binary file object. When omitted the ModelProto is returned instead of being written. - input_names – names for the graph inputs, in placeholder order. - output_names – names for the graph outputs. - opset_version – target ONNX opset (default 18, minimum 13). - dynamic_axes – {value_name: {axis: axis_name}} (or a list of axis indices) marking dimensions that vary at runtime. Applies to both inputs and outputs. - do_constant_folding – fold subgraphs whose inputs are all constants. - verify – run the exported model under onnxruntime and compare against eager execution of exported_program. - rtol/atol – tolerances used by verify. - external_data – store initializers in a side-car file. None decides from the model size (models at or above the 2 GiB protobuf limit). - external_data_location – side-car file name for external_data. - check_model – run onnx.checker over the finished model. Returns: The onnx.ModelProto when f is None, else None. [#](#api-tensorplay.onnx.is_supported) ### is_supported function[Full reference ↗](/docs/generated/tensorplay.onnx.is_supported.html) ```python tensorplay.onnx.is_supported(target: Any) → bool ``` Whether a captured call_function target has an ONNX lowering. [#](#api-tensorplay.onnx.lookup_function_handler) ### lookup_function_handler function[Full reference ↗](/docs/generated/tensorplay.onnx.lookup_function_handler.html) ```python tensorplay.onnx.lookup_function_handler(module: str, name: str) → tuple[Callable[[OpContext], Any], list[str]] | None ``` [#](#api-tensorplay.onnx.lookup_method_handler) ### lookup_method_handler function[Full reference ↗](/docs/generated/tensorplay.onnx.lookup_method_handler.html) ```python tensorplay.onnx.lookup_method_handler(name: str) → tuple[Callable[[OpContext], Any], list[str]] | None ``` [#](#api-tensorplay.onnx.tp_export) ### tp_export function[Full reference ↗](/docs/generated/tensorplay.onnx.tp_export.html) ```python tensorplay.onnx.tp_export(model: Callable[[...], Any], *args: Any, dynamic_shapes: Any = None, strict: bool = False, preserve_module_call_signature: Any = (), **kwargs: Any) → ExportedProgram ``` Capture a callable and return an executable graph program. Parameters: - model – an nn.Module or plain callable; child modules are inlined. - args/kwargs – example inputs binding argument defaults. - dynamic_shapes – dimension specification per argument (dict, sequence, ShapesCollection, or AdditionalInputs). - strict – reserved for callers of the strict capture contract; capture validation is identical in both modes. - preserve_module_call_signature – submodule paths whose call metadata is recorded in module_call_graph for module-level tooling. [#](#api-tensorplay.onnx.verify_model) ### verify_model function[Full reference ↗](/docs/generated/tensorplay.onnx.verify_model.html) ```python tensorplay.onnx.verify_model(model: Any, *, expected: Any, input_names: Sequence[str], example_inputs: dict[str, Any], rtol: float = 0.0001, atol: float = 1e-05, raise_on_mismatch: bool = True) → VerificationResult ``` Compare model under onnxruntime against the eager result. Parameters: - model – the built ModelProto. - expected – what eager TensorPlay produced for example_inputs — a tensor, or an arbitrarily nested tuple/list of them. - input_names – ONNX graph input names, in placeholder order. - example_inputs – placeholder name -> example tensor. - rtol/atol – tolerances forwarded to numpy.allclose(). - raise_on_mismatch – raise [VerificationError](/docs/generated/tensorplay.onnx.VerificationError.html#tensorplay.onnx.VerificationError) instead of returning a failed result. ## Classes 5 [#](#api-tensorplay.onnx.GraphBuilder) ### GraphBuilder class[Full reference ↗](/docs/generated/tensorplay.onnx.GraphBuilder.html) ```python class tensorplay.onnx.GraphBuilder(opset: int, name: str = 'tensorplay_model') ``` Accumulates ONNX nodes, initializers and unique value names. ```python constant(value: Any, dtype: Any = None, name_hint: str = 'const') → str ``` Materialize a python/tensor constant as a cached initializer. ```python op(op_type: str, inputs: Sequence[str], *, num_outputs: int = 1, name_hint: str | None = None, outputs: Sequence[str] | None = None, **attrs: Any) → Any ``` Emit one ONNX node and return its output name (or list of names). [#](#api-tensorplay.onnx.OpContext) ### OpContext class[Full reference ↗](/docs/generated/tensorplay.onnx.OpContext.html) ```python class tensorplay.onnx.OpContext(builder: GraphBuilder, node_name: str, params: Sequence[str], args: Sequence[Any], kwargs: dict[str, Any], out_shape: tuple | None = None, out_dtype: dtype | None = None) ``` Argument access plus emission helpers handed to every handler. ```python cast_like(value: Any, reference: Any, name_hint: str = 'const') → str ``` Name for value, materialized with reference’s dtype. ```python name(value: Any, name_hint: str = 'const') → str ``` ONNX value name for value, materializing constants on demand. ```python property x: Any ``` First declared argument (the input tensor for nearly every op). [#](#api-tensorplay.onnx.TensorProto) ### TensorProto class[Full reference ↗](/docs/generated/tensorplay.onnx.TensorProto.html) ```python class tensorplay.onnx.TensorProto ``` ```python ByteSize() ``` Returns the size of the message in bytes. ```python Clear() ``` Clears the message. ```python ClearExtension() ``` Clears a message field. ```python ClearField() ``` Clears a message field. ```python CopyFrom() ``` Copies a protocol message into the current message. ```python DiscardUnknownFields() ``` Discards the unknown fields. ```python Extensions ``` Extension dict ```python FindInitializationErrors() ``` Finds unset required fields. ```python classmethod FromString() ``` Creates new method instance from given serialized data. ```python HasExtension() ``` Checks if a message field is set. ```python HasField() ``` Checks if a message field is set. ```python IsInitialized() ``` Checks if all required fields of a protocol message are set. ```python ListFields() ``` Lists all set fields of a message. ```python MergeFrom() ``` Merges a protocol message into the current message. ```python MergeFromString() ``` Merges a serialized message into the current message. ```python ParseFromString() ``` Parses a serialized message into the current message. ```python SerializePartialToString() ``` Serializes the message to a string, even if it isn’t initialized. ```python SerializeToString() ``` Serializes the message to a string, only for initialized messages. ```python SetInParent() ``` Sets the has bit of the given field in its parent message. ```python UnknownFields() ``` Parse unknown field set ```python WhichOneof() ``` Returns the name of the field set inside a oneof, or None if no field is set. [#](#api-tensorplay.onnx.Value) ### Value class[Full reference ↗](/docs/generated/tensorplay.onnx.Value.html) ```python class tensorplay.onnx.Value(name: str, shape: tuple | None = None, dtype: dtype | None = None) ``` A tensor flowing through the ONNX graph under construction. [#](#api-tensorplay.onnx.VerificationResult) ### VerificationResult class[Full reference ↗](/docs/generated/tensorplay.onnx.VerificationResult.html) ```python class tensorplay.onnx.VerificationResult(matched: bool, max_abs_diff: float = 0.0, max_rel_diff: float = 0.0, mismatches: list[str] = ) ``` Per-output comparison between eager TensorPlay and onnxruntime. ## Exceptions 4 [#](#api-tensorplay.onnx.OnnxExporterError) ### OnnxExporterError exception[Full reference ↗](/docs/generated/tensorplay.onnx.OnnxExporterError.html) ```python exception tensorplay.onnx.OnnxExporterError ``` Base class for errors raised by the ONNX exporter. [#](#api-tensorplay.onnx.OnnxExporterWarning) ### OnnxExporterWarning exception[Full reference ↗](/docs/generated/tensorplay.onnx.OnnxExporterWarning.html) ```python exception tensorplay.onnx.OnnxExporterWarning ``` Warnings raised during ONNX export. [#](#api-tensorplay.onnx.UnsupportedOperatorError) ### UnsupportedOperatorError exception[Full reference ↗](/docs/generated/tensorplay.onnx.UnsupportedOperatorError.html) ```python exception tensorplay.onnx.UnsupportedOperatorError(name: str, version: int | None = None, supported_version: int | None = None) ``` Raised when a captured operation has no ONNX lowering. [#](#api-tensorplay.onnx.VerificationError) ### VerificationError exception[Full reference ↗](/docs/generated/tensorplay.onnx.VerificationError.html) ```python exception tensorplay.onnx.VerificationError ``` Raised when the exported graph disagrees with eager execution.