onnx.model_container¶
ModelContainer¶
- class onnx.model_container.ModelContainer[原始碼]¶
實作一個 API,將大型張量儲存在主 ModelProto 之外,它可以避免在定義模型時複製大型初始值設定項,並且這些初始值設定項永遠不會透過 protobuf 序列化。在使用者明確儲存模型之前,不會在磁碟上儲存任何張量。
- enumerate_graph_protos() Iterable[GraphProto] [原始碼]¶
列舉模型中的所有 GraphProtos。
- is_in_memory_external_initializer(name: str) bool [原始碼]¶
判斷初始化設定項名稱是否為儲存在記憶體中的外部初始化設定項。在這種情況下,名稱必須以「#」開頭。
- load(file_path: str, load_large_initializers: bool = True)[原始碼]¶
載入大型模型。
- 參數:
file_path – 模型檔案
load_large_initializers – 載入大型初始化設定項,如果未執行此操作,則模型不完整,但可用於查看模型而不執行它,且方法
_load_large_initializers()
可用於稍後載入它們
- save(file_path: str, all_tensors_to_one_file: bool = False) ModelProto [原始碼]¶
儲存大型模型。如果模型不需要任何修改,則此函數會傳回 ModelProto,如果模型需要變更 (例如為每個外部張量提供檔案名稱),則會傳回其修改後的副本。
- 參數:
file_path – 模型檔案
all_tensors_to_one_file – 將所有大型張量儲存在一個檔案中,或每個大型張量一個檔案
- 傳回:
已儲存的 ModelProto
make_large_model¶
- onnx.model_container.make_large_model(graph: GraphProto, large_initializers: dict[str, ndarray] | None = None, **kwargs: Any) ModelContainer [原始碼]¶
建構 ModelContainer
protobuf 的 C API 和 Python API 在不序列化 protos 的情況下無法運作。此函數使用 ModelContainer 的 Python API。
- 參數:
graph – make_graph 傳回
large_initializers – 字典 name: large tensor,大型張量是任何支援 DLPack 協定的 python 物件,張量的所有權會轉移至 ModelContainer,張量必須定義類似於 numpy 張量的方法 tobytes
**kwargs – 要新增至傳回執行個體的任何屬性
- 傳回:
ModelContainer