onnx.compose

merge_graphs(g1, g2, io_map[, inputs, ...])

將兩個 ONNX 圖形合併成一個單一的圖形。

merge_models(m1, m2, io_map[, inputs, ...])

將兩個 ONNX 模型合併成一個單一的模型。

merge_graphs

onnx.compose.merge_graphs(g1: GraphProto, g2: GraphProto, io_map: list[tuple[str, str]], inputs: list[str] | None = None, outputs: list[str] | None = None, prefix1: str | None = None, prefix2: str | None = None, name: str | None = None, doc_string: str | None = None) GraphProto[來源]

將兩個 ONNX 圖形合併成一個單一的圖形。

合併後的圖形是透過連接指定的輸出/輸入集合來定義。在 io_map 引數中未指定的那些輸入/輸出將保留為合併後圖形的輸入/輸出。

參數:
  • g1 (GraphProto) – 第一個圖形

  • g2 (GraphProto) – 第二個圖形

  • io_map (字串的列表,成) – 名稱對 [(out0, in0), (out1, in1), …],代表第一個圖形的輸出和要連接的第二個圖形的輸入

  • inputs (字串的列表) – 可選的輸入列表,要包含在合併後的圖形中。預設情況下,所有不存在於 io_map 引數中的輸入都會包含在合併後模型中

  • outputs (字串的列表) – 可選的輸出列表,要包含在合併後的圖形中。預設情況下,所有不存在於 io_map 引數中的輸出都會包含在合併後模型中

  • prefix1 (字串) – 要新增至 g1 中所有名稱的可選前綴

  • prefix2 (字串) – 要新增至 g2 中所有名稱的可選前綴

  • name (字串) – 合併後圖形的可選名稱。預設情況下,名稱是 g1.name 和 g2.name 以底線分隔符號串連而成

  • doc_string (字串) – 合併後圖形的可選文件字串。如果未提供,則會使用包含 g1 和 g2 文件字串串連的預設文件字串

傳回:

GraphProto

merge_models

onnx.compose.merge_models(m1: ModelProto, m2: ModelProto, io_map: list[tuple[str, str]], inputs: list[str] | None = None, outputs: list[str] | None = None, prefix1: str | None = None, prefix2: str | None = None, name: str | None = None, doc_string: str | None = None, producer_name: str | None = 'onnx.compose.merge_models', producer_version: str | None = '1.0', domain: str | None = '', model_version: int | None = 1) ModelProto[原始碼]

將兩個 ONNX 模型合併成一個單一的模型。

合併後的模型是透過連接指定的輸出/輸入集合來定義的。那些未在 io_map 參數中指定的輸入/輸出將保持為合併模型的輸入/輸出。

兩個模型應具有相同的 IR 版本和導入的相同運算子集合。

參數:
  • m1 (ModelProto) – 第一個模型

  • m2 (ModelProto) – 第二個模型

  • io_map (字串的列表,成) – 名稱對 [(out0, in0), (out1, in1), …],代表第一個圖形的輸出和要連接的第二個圖形的輸入

  • inputs (字串的列表) – 可選的輸入列表,要包含在合併後的圖形中。預設情況下,所有不存在於 io_map 引數中的輸入都會包含在合併後模型中

  • outputs (字串的列表) – 可選的輸出列表,要包含在合併後的圖形中。預設情況下,所有不存在於 io_map 引數中的輸出都會包含在合併後模型中

  • prefix1 (字串) – 可選的前綴,將添加到 m1 中的所有名稱

  • prefix2 (字串) – 可選的前綴,將添加到 m2 中的所有名稱

  • name (字串) – 合併後圖形的可選名稱。預設情況下,名稱是 g1.name 和 g2.name 以底線分隔符號串連而成

  • doc_string (字串) – 合併後圖形的可選文件字串。如果未提供,則會使用包含 g1 和 g2 文件字串串連的預設文件字串

  • producer_name (字串) – 合併模型的可選生產者名稱。預設值:'onnx.compose'

  • producer_version (字串) – 合併模型的可選生產者版本。預設值:“1.0”

  • domain (字串) – 合併模型的可選網域。預設值:""

  • model_version (int) – 編碼的圖形可選版本。預設值:1

傳回:

ModelProto

prefix

onnx.compose.add_prefix_graph(graph: GraphProto, prefix: str, rename_nodes: bool | None = True, rename_edges: bool | None = True, rename_inputs: bool | None = True, rename_outputs: bool | None = True, rename_initializers: bool | None = True, rename_value_infos: bool | None = True, inplace: bool | None = False, name_map: dict[str, str] | None = None) GraphProto[原始碼]

在圖形中的元素名稱(節點、邊緣、輸入、輸出、初始化器、稀疏初始化器、數值資訊)加上前綴。

它可以用作合併具有重疊名稱的圖形之前的工具。空的名稱不會加上前綴。

參數:
  • graph (GraphProto) – 圖形

  • prefix (str) – 要加到圖形中每個名稱的前綴

  • rename_nodes (bool) – 是否為節點名稱加上前綴

  • rename_edges (bool) – 是否為節點邊緣名稱加上前綴

  • rename_inputs (bool) – 是否為輸入名稱加上前綴

  • rename_outputs (bool) – 是否為輸出名稱加上前綴

  • rename_initializers (bool) – 是否為初始化器和稀疏初始化器名稱加上前綴

  • rename_value_infos (bool) – 是否為數值資訊名稱加上前綴

  • inplace (bool) – 如果為 True,直接修改圖形。否則,將建立副本

  • name_map – (Dict): 子圖中共享的 name_map

傳回:

GraphProto

onnx.compose.add_prefix(model: ModelProto, prefix: str, rename_nodes: bool | None = True, rename_edges: bool | None = True, rename_inputs: bool | None = True, rename_outputs: bool | None = True, rename_initializers: bool | None = True, rename_value_infos: bool | None = True, rename_functions: bool | None = True, inplace: bool | None = False) ModelProto[原始碼]

在模型中的元素名稱(節點、邊緣、輸入、輸出、初始化器、稀疏初始化器、數值資訊和本地函數)加上前綴。

它可以用作合併具有重疊名稱的圖形之前的工具。空的名稱不會加上前綴。

參數:
  • model (ModelProto) – 模型

  • prefix (str) – 要加到圖形中每個名稱的前綴

  • rename_nodes (bool) – 是否為節點名稱加上前綴

  • rename_edges (bool) – 是否為節點邊緣名稱加上前綴

  • rename_inputs (bool) – 是否為輸入名稱加上前綴

  • rename_outputs (bool) – 是否為輸出名稱加上前綴

  • rename_initializers (bool) – 是否為初始化器和稀疏初始化器名稱加上前綴

  • rename_value_infos (bool) – 是否為值資訊名稱添加前綴

  • rename_functions (bool) – 是否為本地函數名稱添加前綴

  • inplace (bool) – 如果為 True,則直接修改模型。否則,會建立一個副本

傳回:

ModelProto

維度

onnx.compose.expand_out_dim(model: ModelProto, dim_idx: int, inplace: bool | None = False) ModelProto[原始碼]

在圖形中的每個輸出中插入一個額外的維度,其範圍為 1。

為每個輸出插入一個 Unsqueeze 節點。它可以用作合併圖形之前的工具,例如,當第二個圖形需要批次維度時。

參數:
  • model (ModelProto) – 模型

  • dim_idx (int) – 要插入的維度索引。負值表示從後面開始計算維度。

  • inplace (bool) – 如果為 True,則直接修改模型。否則,會建立一個副本

傳回:

ModelProto

onnx.compose.expand_out_dim_graph(graph: GraphProto, dim_idx: int, inplace: bool | None = False) GraphProto[原始碼]

在圖形中的每個輸出中插入一個額外的維度,其範圍為 1。

為每個輸出插入一個 Unsqueeze 節點。它可以用作合併圖形之前的工具,例如,當第二個圖形需要批次維度時。

參數:
  • graph (GraphProto) – 圖形

  • dim_idx (int) – 要插入的維度索引。負值表示從後面開始計算維度。

  • inplace (bool) – 如果為 True,則直接修改模型。否則,會建立一個副本

傳回:

GraphProto