工具

与onnx相关的实用函数。

函数

duplicate_shared_constants

如果共享了重复的常量张量。

find_lowest_common_ancestor

查找两个节点的最低公共祖先的函数。

gen_random_inputs

此函数为onnx模型生成随机输入。

get_all_input_names

此函数返回给定onnx模型的输入名称。

get_batch_size

返回给定onnx模型的批量大小。

get_batch_size_from_bytes

返回给定onnx模型的批量大小。

get_child_nodes

返回给定节点的输出消费者节点列表。

get_input_names

此函数返回给定onnx模型的外部输入名称。

get_input_names_from_bytes

此函数返回给定onnx模型的输入名称,以字节为单位。

get_input_shapes

此函数返回给定onnx模型的输入形状。

get_input_shapes_from_bytes

此函数返回给定onnx模型的输入形状,单位为字节。

get_node_names

此函数返回给定onnx模型中的所有节点名称。

get_node_names_from_bytes

此函数返回给定onnx模型中所有节点名称的字节形式。

get_output_names

此函数返回给定onnx模型的输出名称。

get_output_names_from_bytes

此函数返回给定onnx模型的输出名称,以字节为单位。

get_output_shapes

此函数返回给定onnx模型的输出形状。

get_parent_nodes

返回给定节点的输入生产者节点列表。

get_variable_inputs

返回给定节点的变量输入。

is_valid_onnx_model

检查给定的文件是否是有效的ONNX模型。

name_onnx_nodes

如果不存在,则为onnx节点分配名称并返回修改后的状态。

parse_shapes_spec

解析形状规范并将它们返回到字典中。

randomize_weights

为onnx模型权重分配随机值。

randomize_weights_onnx_bytes

为onnx模型权重分配随机值。

remove_weights_data

从onnx模型中移除原始权重数据。

save_onnx

将ONNX模型保存到指定路径。

save_onnx_bytes_to_dir

将onnx字节保存到具有指定文件名的目录中。

udpate_domain

将所有指定操作类型节点的域更新为指定的域。

validate_batch_size

如果所有模型输入的批次维度等于batch_size,则返回True。

validate_onnx

如果onnx_bytes有效,则返回True,否则返回False。

duplicate_shared_constants(onnx_model)

如果共享了重复的常量张量。

Parameters:

onnx_model (ModelProto) –

Return type:

元组[模型原型, 布尔值]

find_lowest_common_ancestor(node1, node2)

查找两个节点的最低公共祖先的函数。

Parameters:
  • node1 (Node) – 第一个节点名称。

  • node2 (Node) – 第二个节点名称。

Returns:

LCA节点。 与第一个节点的距离。 与第二个节点的距离。

Return type:

元组[字符串 | , 整数, 整数]

gen_random_inputs(model, shapes_spec=None)

此函数为onnx模型生成随机输入。

Parameters:
  • model (ModelProto) – 加载到内存中的onnx ModelProto。

  • shapes_spec (str) –

Returns:

numpy张量的字典。

Return type:

字典[字符串, 多维数组]

get_all_input_names(model)

此函数返回给定onnx模型的输入名称。

Parameters:

模型 (ModelProto) –

Return type:

列表[字符串]

get_batch_size(model)

返回给定onnx模型的批量大小。

如果所有输入的批量大小不相同,断言将失败。

Parameters:

模型 (ModelProto) –

Return type:

整数

get_batch_size_from_bytes(onnx_bytes)

返回给定onnx模型的批量大小。

如果所有输入的批量大小不相同,断言将失败。

Parameters:

onnx_bytes (字节) –

Return type:

整数

get_child_nodes(node)

返回给定节点的输出消费者节点列表。

Parameters:

节点 (Node) –

Return type:

列表[节点]

get_input_names(model, external_inputs_only=True)

此函数返回给定onnx模型的外部输入名称。

注意:external_input_names = input_names - initializer_names

Parameters:
  • model (ModelProto) – 加载到内存中的onnx ModelProto。

  • external_inputs_only (bool) –

Returns:

模型的外部输入名称列表。

Return type:

列表[字符串]

get_input_names_from_bytes(model_bytes, external_inputs_only=True)

此函数返回给定onnx模型的输入名称,以字节为单位。

Parameters:
  • model_bytes (bytes) – Onnx 模型的字节形式。

  • external_inputs_only (bool) –

Returns:

模型的输入名称列表。

Return type:

列表[字符串]

get_input_shapes(model, external_inputs_only=True)

此函数返回给定onnx模型的输入形状。

Parameters:
  • 模型 (ModelProto) –

  • external_inputs_only (bool) –

Return type:

字典[字符串, 列表[整数]]

get_input_shapes_from_bytes(model_bytes)

此函数返回给定onnx模型的输入形状,单位为字节。

Parameters:

model_bytes (bytes) – 以字节为单位的Onnx模型。

Returns:

输入名称和形状的字典。

Return type:

字典[字符串, 列表[整数]]

get_node_names(model)

此函数返回给定onnx模型中的所有节点名称。

Parameters:

model (ModelProto) – 加载到内存中的onnx ModelProto。

Returns:

模型节点名称列表。

Return type:

列表[字符串]

get_node_names_from_bytes(model_bytes)

此函数返回给定onnx模型中所有节点名称的字节形式。

Parameters:
  • model – onnx 模型的字节形式。

  • model_bytes (字节) –

Returns:

模型节点名称列表。

Return type:

列表[字符串]

get_output_names(model)

此函数返回给定onnx模型的输出名称。

Parameters:

model (ModelProto) – 加载到内存中的onnx ModelProto。

Returns:

模型的输出名称列表。

Return type:

列表[字符串]

get_output_names_from_bytes(model_bytes)

此函数返回给定onnx模型的输出名称,以字节为单位。

Parameters:

model_bytes (bytes) – Onnx 模型的字节形式。

Returns:

模型的输出名称列表。

Return type:

列表[字符串]

get_output_shapes(model)

此函数返回给定onnx模型的输出形状。

Parameters:

模型 (ModelProto) –

Return type:

Dict[str, List[int]]

get_parent_nodes(node)

返回给定节点的输入生产者节点列表。

Parameters:

节点 (Node) –

Return type:

列表[节点]

get_variable_inputs(node)

返回给定节点的变量输入。

Parameters:

节点 (Node) –

Return type:

列表[变量]

is_valid_onnx_model(file_path)

检查给定的文件是否是有效的ONNX模型。

name_onnx_nodes(graph)

如果不存在,则为onnx节点分配名称并返回修改后的状态。

Parameters:

(GraphProto) –

Return type:

bool

parse_shapes_spec(shapes_spec)

解析形状规范并将它们返回到字典中。

示例形状规格:input0:1x3x256x256,input1:1x3x128x128

Parameters:

shapes_spec (str) –

Return type:

字典[字符串, 列表[整数]]

randomize_weights(onnx_path)

为onnx模型权重分配随机值。

Parameters:

onnx_path (str) –

Return type:

randomize_weights_onnx_bytes(onnx_bytes, seed=0)

为onnx模型权重分配随机值。

Parameters:
  • onnx_bytes (字节) –

  • seed (int) –

Return type:

字节

remove_weights_data(onnx_bytes)

从onnx模型中移除原始权重数据。

Parameters:

onnx_bytes (字节) –

Return type:

字节

save_onnx(model, onnx_path, save_as_external_data=False)

将ONNX模型保存到指定路径。如果模型大于2GB,将使用外部数据保存。

Parameters:
  • 模型 (ModelProto) –

  • onnx_path (str) –

  • save_as_external_data (bool) –

save_onnx_bytes_to_dir(onnx_bytes, onnx_dir, onnx_name)

将onnx字节保存到具有指定文件名的目录中。

Parameters:
  • onnx_bytes (字节) –

  • onnx_dir (str) –

  • onnx_name (str) –

Return type:

udpate_domain(onnx_model, op_type, domain)

将所有指定操作类型节点的域更新为指定的域。

Parameters:
  • onnx_model (ModelProto) –

  • op_type (str) –

  • domain (str) –

Return type:

ModelProto

validate_batch_size(onnx_bytes, batch_size)

如果所有模型输入的批次维度等于batch_size,则返回True。

Parameters:
  • onnx_bytes (字节) –

  • batch_size (int) –

Return type:

bool

validate_onnx(onnx_bytes)

如果onnx_bytes有效,则返回True,否则返回False。

Parameters:

onnx_bytes (字节) –

Return type:

bool