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[source]

将两个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[source]

将两个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 (整数) – 编码的图的可选版本。默认值:1

返回:

ModelProto

前缀

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[source]

为图中元素的名称添加前缀:节点、边、输入、输出、初始化器、稀疏初始化器、值信息。

它可以用作合并具有重叠名称的图之前的实用程序。空名称不会添加前缀。

参数:
  • **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** – (字典): 子图中共享的 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[source]

为图中元素的名称添加前缀:节点、边、输入、输出、初始化器、稀疏初始化器、值信息和本地函数。

它可以用作合并具有重叠名称的图之前的实用程序。空名称不会添加前缀。

参数:
  • **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[source]

在图中的每个输出中插入一个扩展为 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[source]

在图中的每个输出中插入一个扩展为 1 的额外维度。

为每个输出插入一个 Unsqueeze 节点。它可以用作合并图之前的实用程序,例如,当第二个图期望一个批处理维度时。

参数:
  • **graph** (GraphProto) – 图

  • dim_idx (int) – 要插入的维度的索引。负值表示从后向前计数维度。

  • **inplace** (bool) – 如果为 True,则直接修改模型。否则,将创建副本

返回:

GraphProto