onnx.model_container¶
模型容器¶
- class onnx.model_container.ModelContainer[源代码]¶
实现了一个API,用于在主ModelProto之外存储大型张量,它避免了在定义模型时复制大型初始化器,并且这些初始化器永远不会通过protobuf序列化。在用户明确保存模型之前,没有张量存储在磁盘上。
- enumerate_graph_protos() Iterable[GraphProto][source]¶
枚举模型中的所有GraphProtos。
- is_in_memory_external_initializer(name: str) bool[source]¶
判断初始化器名称是否是存储在内存中的外部初始化器。 在这种情况下,名称必须以‘#’开头。
- load(file_path: str, load_large_initializers: bool = True)[source]¶
加载大型模型。
- Parameters:
file_path – 模型文件
load_large_initializers – 加载大型初始化器, 如果未完成,模型将不完整,但可以用于 查看模型而不执行它,并且方法
_load_large_initializers()可以稍后用于加载它们
- save(file_path: str, all_tensors_to_one_file: bool = False) ModelProto[source]¶
保存大型模型。 该函数返回一个ModelProto, 如果模型不需要任何修改,则返回当前的ModelProto, 如果需要更改(例如为每个外部张量提供文件名),则返回其修改后的副本。
- Parameters:
file_path – 模型文件
all_tensors_to_one_file – 将所有大张量保存到一个文件中,或者每个大张量保存为一个文件
- Returns:
保存的ModelProto
make_large_model¶
- onnx.model_container.make_large_model(graph: GraphProto, large_initializers: dict[str, ndarray] | None = None, **kwargs: Any) ModelContainer[source]¶
构建一个ModelContainer
protobuf 的 C API 和 Python API 在没有序列化 protos 的情况下无法操作。此函数使用 ModelContainer 的 Python API。
- Parameters:
图 – make_graph 返回
large_initializers – 字典 name: 大张量, 大张量是任何支持DLPack协议的Python对象, 张量的所有权将转移给ModelContainer, 张量必须定义类似于numpy张量的tobytes方法
**kwargs – 任何要添加到返回实例的属性
- Returns:
模型容器