latest (dev)
Copy
Latest development documentation · Updated 2026-10-08
Source code for tensorplay.export
"""Graph capture, dynamic shape declarations, and exported programs."""
from typing import Any
from .decomp_utils import CustomDecompTable
from .custom_obj import register_dataclass
from .pt2_archive import (
PT2ArchiveContents,
WeightType,
load_pt2,
package_pt2,
)
from .dynamic_shapes import (
AdditionalInputs,
Constraint,
ConstraintsExceededError,
DerivedDim,
Dim,
ShapesCollection,
dims,
refine_dynamic_shapes_from_suggested_fixes,
)
from .exported_program import (
EqualityConstraint,
ExportedProgram,
ModuleCallEntry,
ModuleCallSignature,
default_decompositions,
)
from .graph_signature import (
ArgumentSpec,
ConstantArgument,
CustomObjArgument,
ExportBackwardSignature,
ExportGraphSignature,
GraphSignature,
InputKind,
InputSpec,
OutputKind,
OutputSpec,
SymBoolArgument,
SymFloatArgument,
SymIntArgument,
TensorArgument,
TokenArgument,
)
from ._trace import export, export_for_training
from ._draft_export import draft_export
from .unflatten import FlatArgsAdapter, UnflattenedModule, unflatten
__all__ = [
"AdditionalInputs",
"ArgumentSpec",
"ConstantArgument",
"Constraint",
"ConstraintsExceededError",
"CustomDecompTable",
"CustomObjArgument",
"DerivedDim",
"Dim",
"EqualityConstraint",
"ExportBackwardSignature",
"ExportGraphSignature",
"ExportedProgram",
"FlatArgsAdapter",
"GraphSignature",
"InputKind",
"InputSpec",
"ModuleCallEntry",
"ModuleCallSignature",
"OutputKind",
"OutputSpec",
"PT2ArchiveContents",
"ShapesCollection",
"SymBoolArgument",
"SymFloatArgument",
"SymIntArgument",
"TensorArgument",
"TokenArgument",
"UnflattenedModule",
"WeightType",
"default_decompositions",
"dims",
"draft_export",
"export",
"export_for_training",
"refine_dynamic_shapes_from_suggested_fixes",
"register_dataclass",
"save",
"load",
"unflatten",
]
[docs]
def save(
ep: Any,
f: Any,
*,
extra_files: dict[str, Any] | None = None,
opset_version: dict[str, int] | None = None,
pickle_protocol: int = 4,
) -> None:
"""Save an :class:`ExportedProgram` to a file or writable buffer."""
if not isinstance(ep, ExportedProgram):
raise TypeError(
f"The 'ep' parameter must be an ExportedProgram, got {type(ep).__name__}"
)
package_pt2(
f,
exported_programs=ep,
extra_files=extra_files,
opset_version=opset_version,
pickle_protocol=pickle_protocol,
)
[docs]
def load(
f: Any,
*,
extra_files: dict[str, Any] | None = None,
expected_opset_version: dict[str, int] | None = None,
) -> Any:
"""Load an :class:`ExportedProgram` previously written by :func:`save`."""
contents = load_pt2(f, expected_opset_version=expected_opset_version)
if extra_files is not None:
extra_files.update(contents.extra_files)
if not contents.exported_programs:
raise ValueError("the archive does not contain an exported program")
return contents.exported_programs["model"]Help improve this page
Found an error, an unclear step, or a missing example?
Was this page helpful?

