onnx.compose

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

将两个ONNX图合并为一个。

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

将两个ONNX模型合并为一个。

合并图表

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参数中指定的输入/输出将保留为组合图的输入/输出。

Parameters:
  • g1 (GraphProto) – 第一个图

  • g2 (GraphProto) – 第二个图

  • io_map (list of pairs of string) – 名称对 [(out0, in0), (out1, in1), …] 表示第一个图的输出和第二个图的输入,用于连接

  • inputs (list of string) – 可选的输入列表,包含在组合图中 默认情况下,所有未出现在io_map参数中的输入都将包含在组合模型中

  • 输出 (列表字符串) – 可选的要包含在组合图中的输出列表 默认情况下,所有不在 io_map 参数中的输出都将包含在组合模型中

  • prefix1 (string) – 可选的前缀,将添加到g1中的所有名称

  • prefix2 (string) – 可选的前缀,将添加到g2中的所有名称

  • name (string) – 组合图的可选名称 默认情况下,名称是g1.name和g2.name以下划线分隔符连接而成

  • doc_string (string) – 组合图的可选文档字符串 如果未提供,则使用g1和g2文档字符串的默认连接

Returns:

GraphProto

合并模型

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版本,并导入相同的操作符集。

Parameters:
  • m1 (ModelProto) – 第一个模型

  • m2 (ModelProto) – 第二个模型

  • io_map (list of pairs of string) – 名称对 [(out0, in0), (out1, in1), …] 表示第一个图的输出和第二个图的输入,这些输出和输入将被连接起来

  • inputs (list of string) – 可选的输入列表,包含在组合图中 默认情况下,所有未出现在io_map参数中的输入都将包含在组合模型中

  • 输出 (列表字符串) – 可选的要包含在组合图中的输出列表 默认情况下,所有不在 io_map 参数中的输出都将包含在组合模型中

  • prefix1 (string) – 可选的前缀,将添加到m1中的所有名称

  • prefix2 (string) – 可选的前缀,将添加到m2中的所有名称

  • name (string) – 组合图的可选名称 默认情况下,名称是g1.name和g2.name用下划线分隔符连接而成

  • doc_string (string) – 组合图的可选文档字符串 如果未提供,则使用g1和g2文档字符串的默认连接

  • producer_name (string) – 可选的生产者名称,用于组合模型。默认值:'onnx.compose'

  • producer_version (string) – 可选的生产者版本,用于组合模型。默认值:“1.0”

  • domain (string) – 组合模型的可选域。默认值:""

  • model_version (int) – 可选的图形编码版本。默认值:1

Returns:

模型原型

前缀

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]

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

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

Parameters:
  • 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

Returns:

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[源代码]

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

它可以在合并具有重叠名称的图之前用作实用工具。 空名称不会被_前缀。

Parameters:
  • 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,则直接修改模型。 否则,将创建一个副本

Returns:

模型原型

维度

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

在图中为每个输出插入一个额外的维度,其范围为1。

为每个输出插入一个Unsqueeze节点。它可以在合并图之前用作实用工具,例如当第二个图期望有批次维度时。

Parameters:
  • model (ModelProto) – 模型

  • dim_idx (int) – 要插入的维度的索引。 负值表示从后面开始计算维度。

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

Returns:

模型原型

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

在图中为每个输出插入一个额外的维度,其范围为1。

为每个输出插入一个Unsqueeze节点。它可以在合并图之前用作实用工具,例如当第二个图期望有批次维度时。

Parameters:
  • graph (GraphProto) – 图

  • dim_idx (int) – 要插入的维度的索引。 负值表示从后面开始计算维度。

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

Returns:

GraphProto