加载器

模块:polygraphy.tools.args

class OnnxInferShapesArgs(default: bool | None = None, allow_force_fallback: bool | None = None)[source]

基类: BaseArgs

ONNX 形状推断:ONNX 形状推断。

依赖于

  • OnnxLoadArgs

  • DataLoaderArgs:如果 allow_force_fallback == True

参数:
  • default (bool) – 是否默认启用形状推断。默认为 False。

  • allow_force_fallback (bool) – 是否允许使用 ONNX-Runtime 进行回退形状推断。默认为 False。

parse_impl(args)[source]

解析命令行参数并填充以下属性

do_shape_inference

是否执行形状推断。

类型:

bool

force_fallback

是否强制回退形状推断。

类型:

bool

allow_onnxruntime

是否允许使用 ONNX-Runtime 的形状推断实用程序。

类型:

bool

add_to_script_impl(script, loader_name)[source]

请注意,此方法不考虑回退形状推断。为了支持回退形状推断,工具必须手动调用 fallback_inference()

参数:

loader_name (str) – 加载器的名称,该加载器应由 InferShapes 加载器使用。

返回:

添加到脚本的 InferShapes 加载器的名称。

返回类型:

str

infer_shapes(model, force=None)[source]

如果根据命令行提供的参数,do_shape_inference 为 True,则在 ONNX 模型上运行形状推断。

参数:
  • model (onnx.ModelProto) – 要在其中推断形状的模型。

  • force (bool) – 即使 do_shape_inference 为 False,也强制运行形状推断。默认为 False。

返回:

推断形状的模型。

返回类型:

onnx.ModelProto

fallback_inference(onnx_model, outputs=None)[source]

使用 ONNX-Runtime 运行推断。

这可以用于在其他形状推断方法失败时检索模型中所有张量的值/形状/数据类型。

参数:
  • onnx_model (onnx.ModelProto) – 要在其中推断形状的 ONNX 模型。

  • outputs (List[str]) – 要检索的输出的名称。默认为 constants.MARK_ALL

返回:

一个包含两个元素的元组:1. 模型中所有张量(包括输入)的值的映射。2. 模型中每个张量的元数据。

返回类型:

(IterationResult, TensorMetadata)

class OnnxSaveArgs(allow_shape_inference: bool | None = None, output_opt: str | None = None, output_short_opt: str | None = None, output_opt_required: bool | None = None, output_default_path: str | None = None, allow_multiple_models: bool | None = None)[source]

基类: BaseArgs

ONNX 模型保存:保存 ONNX 模型。

依赖于

  • OnnxInferShapesArgs:如果 allow_shape_inference == True

参数:
  • allow_shape_inference (bool) – 保存模型时是否允许形状推断。默认为 False。

  • output_opt (str) – 输出路径选项的名称。默认为 “output”。使用 False 值禁用该选项。

  • output_short_opt (str) – 用于输出路径的短选项。默认为 “-o”。使用 False 值禁用短选项。

  • output_opt_required (bool) – 输出路径是否为必需参数。默认为 False。

  • output_default_path (str) – 用于输出路径选项的默认值。默认为 None。

  • allow_multiple_models (bool) – 是否启用保存多个模型的支持。如果为 True,则输出路径应为目录。默认为 False。

parse_impl(args)[source]

解析命令行参数并填充以下属性

path

保存 ONNX 模型的路径。

类型:

str

external_data_path

保存外部数据的路径。

类型:

str

size_threshold

保存外部数据的大小阈值。

类型:

int

all_tensors_to_one_file

是否应将所有外部数据写入单个文件。

类型:

bool

add_to_script_impl(script, loader_name)[source]
参数:

loader_name (str) – 加载器的名称,该加载器应由 SaveOnnx 加载器使用。

返回:

添加到脚本的 SaveOnnx 加载器的名称。

返回类型:

str

save_onnx(model, path: str | None = None)[source]

根据命令行提供的参数保存 ONNX 模型。

参数:
  • model (onnx.ModelProto) – 要保存的 ONNX 模型。

  • path (str) – 保存模型的路径。如果未提供路径,则从命令行参数确定。

返回:

已保存的模型。

返回类型:

onnx.ModelProto

class OnnxLoadArgs(allow_saving: bool | None = None, outputs_opt_prefix: str | None = None, allow_shape_inference: bool | None = None, allow_from_tf: bool | None = None, allow_setting_upper_bounds: bool | None = None)[source]

基类: BaseArgs

ONNX 模型加载:加载 ONNX 模型。

依赖于

  • ModelArgs

  • OnnxInferShapesArgs:如果 allow_shape_inference == True

  • OnnxSaveArgs:如果 allow_saving == True

  • OnnxFromTfArgs:如果 allow_from_tf == True

参数:
  • allow_saving (bool) – 是否允许保存加载的模型。默认为 False。

  • outputs_opt_prefix (str) – 输出选项的前缀,该选项控制哪些张量标记为输出。默认为 “onnx-“。使用 False 值禁用该选项。

  • allow_shape_inference (bool) – 加载模型时是否允许形状推断。默认为 True。

  • allow_from_tf (bool) – 是否允许将 TensorFlow 模型转换为 ONNX。默认为 False。

  • allow_setting_upper_bounds (bool) – 是否允许为无界 DDS 设置上界。默认为 False。

parse_impl(args)[source]

解析命令行参数并填充以下属性

outputs

输出张量的名称。

类型:

List[str]

exclude_outputs

应取消标记为输出的张量的名称。

类型:

List[str]

external_data_dir

从中加载外部数据的目录的路径。

类型:

str

ignore_external_data

是否忽略加载外部数据。

类型:

bool

convert_to_fp16

是否将模型转换为 FP16。

类型:

bool

upper_bounds

具有无界 DDS 的张量的上界。

类型:

Union[int, Dict[str, int]]

add_to_script_impl(script, disable_custom_outputs: bool | None = None, serialize_model: bool | None = None)[source]
参数:
  • disable_custom_outputs (bool) – 是否禁止根据 outputsexclude_outputs 属性修改输出。默认为 False。

  • serialize_model (bool) – 是否序列化模型。默认为 False。

返回:

添加到脚本中的 ONNX 加载器的名称。

返回类型:

str

must_use_onnx_loader(disable_custom_outputs: bool | None = None)[source]

此模型是否需要通过 Polygraphy ONNX 加载器加载,例如,如果需要修改。

参数:

disable_custom_outputs (bool) – 是否禁止根据 outputsexclude_outputs 属性修改输出。

返回:

bool

load_onnx()[source]

根据命令行提供的参数加载 ONNX 模型。

返回:

已加载的模型。

返回类型:

onnx.ModelProto

class OnnxFromTfArgs[source]

基类: BaseArgs

TensorFlow-ONNX 模型转换:将 TensorFlow 模型转换为 ONNX。

依赖于

  • TfLoadArgs

parse_impl(args)[source]

解析命令行参数并填充以下属性

opset

转换期间要使用的 ONNX opset 版本。

类型:

int