Onnx 解析器

class tensorrt.OnnxParser(self: tensorrt.tensorrt.OnnxParser, network: tensorrt.tensorrt.INetworkDefinition, logger: tensorrt.tensorrt.ILogger)

此类用于将 ONNX 模型解析为 TensorRT 网络定义

变量:

num_errorsint 先前调用 parse() 期间发生的错误数量

参数:
  • network – 解析器将写入的网络定义。

  • logger – 要使用的日志记录器。

__del__(self: tensorrt.tensorrt.OnnxParser) None
__exit__(exc_type, exc_value, traceback)

上下文管理器已弃用,不起作用。当引用计数达到 0 时,对象会自动释放。

__init__(self: tensorrt.tensorrt.OnnxParser, network: tensorrt.tensorrt.INetworkDefinition, logger: tensorrt.tensorrt.ILogger) None
参数:
  • network – 解析器将写入的网络定义。

  • logger – 要使用的日志记录器。

clear_errors(self: tensorrt.tensorrt.OnnxParser) None

清除先前调用 parse() 产生的错误

clear_flag(self: tensorrt.tensorrt.OnnxParser, flag: nvonnxparser::OnnxParserFlag) None

从启用的标志中清除解析器标志。

参数:

flag – 要清除的标志。

get_error(self: tensorrt.tensorrt.OnnxParser, index: int) nvonnxparser::IParserError

获取先前调用 parse() 期间发生的错误

参数:

index – 错误索引

get_flag(self: tensorrt.tensorrt.OnnxParser, flag: nvonnxparser::OnnxParserFlag) bool

检查是否设置了构建模式标志。

参数:

flag – 要检查的标志。

返回值:

一个布尔值,指示是否设置了标志。

get_layer_output_tensor(self: tensorrt.tensorrt.OnnxParser, name: str, i: int) tensorrt.tensorrt.ITensor

获取 ONNX 层 “name” 的第 i 个输出 ITensor 对象。

如果多个节点共享相同的名称,此函数将返回 ONNX 图中节点第一个实例的输出张量。

arg name:

ONNX 层的名称。

arg i:

输出的索引。

returns:

输出张量;如果未找到该层或提供了无效索引,则返回 None。

get_subgraph_nodes(self: tensorrt.tensorrt.OnnxParser, index: int) list

获取指定子图的节点。在 p supportsModelV2 之前调用是未定义的行为。默认情况下将返回一个空列表。

参数:

index – 子图的索引。

返回值:

List[int] 子图中节点索引的列表。

get_used_vc_plugin_libraries(self: tensorrt.tensorrt.OnnxParser) List[str]

查询实现版本兼容引擎中解析器使用的操作所需的插件库。

这提供了文件系统上插件库的列表,这些插件库用于实现在已解析网络中的操作。如果您正在使用此网络构建版本兼容的引擎,请将此列表提供给 IBuilderConfig.set_plugins_to_serialize() 以将这些插件与版本兼容的引擎一起序列化,或者,如果您想将这些插件库外部运送到引擎,请确保在反序列化相应的引擎之前,使用 IPluginRegistry.load_library() 在适当的运行时加载这些库。

返回值:

List[str] 解析器找到的插件库列表。

Raises:

RuntimeError 尝试获取插件库列表时发生内部错误,则引发 RuntimeError。

is_subgraph_supported(self: tensorrt.tensorrt.OnnxParser, index: int) bool

返回子图是否受支持。在 p supportsModelV2 之前调用是未定义的行为。默认情况下将返回 false。

参数:

index – 要检查的子图的索引。

返回值:

如果子图受支持,则为 true

parse(self: tensorrt.tensorrt.OnnxParser, model: buffer, path: str = None) bool

将序列化的 ONNX 模型解析到 TensorRT 网络中。

参数:
  • model – 序列化的 ONNX 模型。

  • path – 模型文件的路径。仅当模型具有外部存储的权重时才需要。

返回值:

如果模型解析成功,则为 true

parse_from_file(self: tensorrt.tensorrt.OnnxParser, model: str) bool

从文件将 ONNX 模型解析到 TensorRT 网络中。

参数:

model – ONNX 模型的路径。

返回值:

如果模型解析成功,则为 true

parse_with_weight_descriptors(self: tensorrt.tensorrt.OnnxParser, model: buffer) bool

将序列化的 ONNX 模型解析到 TensorRT 网络中,并考虑用户提供的权重。

参数:

model – 序列化的 ONNX 模型。

返回值:

如果模型解析成功,则为 true

set_flag(self: tensorrt.tensorrt.OnnxParser, flag: nvonnxparser::OnnxParserFlag) None

将输入解析器标志添加到已启用的标志中。

参数:

flag – 要设置的标志。

supports_model(self: tensorrt.tensorrt.OnnxParser, model: buffer, path: str = None) Tuple[bool, List[Tuple[List[int], bool]]]

[已弃用] 在 TensorRT 10.1 中已弃用。请参阅 supports_model_v2。

检查 TensorRT 是否支持特定的 ONNX 模型。

参数:
  • model – 序列化的 ONNX 模型。

  • path – 模型文件的路径。仅当模型具有外部存储的权重时才需要。

返回值:

Tuple[bool, List[Tuple[NodeIndices, bool]]] 元组的第一个元素指示模型是否受支持。第二个元素指示模型中的子图(按节点索引)以及它们是否受支持。

supports_model_v2(self: tensorrt.tensorrt.OnnxParser, model: buffer, path: str = None) bool

检查 TensorRT 是否支持特定的 ONNX 模型。使用 num_subgraphs、is_subgraph_supported、get_subgraph_nodes 查询每个子图。

参数:
  • model – 序列化的 ONNX 模型。

  • path – 模型文件的路径。仅当模型具有外部存储的权重时才需要。

返回值:

如果模型受支持,则为 true

supports_operator(self: tensorrt.tensorrt.OnnxParser, op_name: str) bool

返回指定的运算符是否可能受解析器支持。请注意,结果为 true 并不保证该运算符在所有情况下都受支持(即,此函数可能会返回误报)。

参数:

op_name – 要检查是否受支持的 ONNX 运算符的名称

class tensorrt.OnnxParserRefitter(self: tensorrt.tensorrt.OnnxParserRefitter, refitter: tensorrt.tensorrt.Refitter, logger: tensorrt.tensorrt.ILogger)

这是一个旨在从 ONNX 模型重拟合权重的接口。

参数:
  • refitter – 用于重拟合模型的 Refitter 对象。

  • logger – 要使用的日志记录器。

__init__(self: tensorrt.tensorrt.OnnxParserRefitter, refitter: tensorrt.tensorrt.Refitter, logger: tensorrt.tensorrt.ILogger) None
参数:
  • refitter – 用于重拟合模型的 Refitter 对象。

  • logger – 要使用的日志记录器。

clear_errors(self: tensorrt.tensorrt.OnnxParserRefitter) None

清除先前调用 refitFromBytes()refitFromFile() 产生的错误。

get_error(self: tensorrt.tensorrt.OnnxParserRefitter, index: int) tensorrt.tensorrt.ParserError

获取先前调用 refitFromBytes()refitFromFile() 期间发生的错误。

参数:

index – 错误索引

refit_from_bytes(self: tensorrt.tensorrt.OnnxParserRefitter, model: buffer, path: str = None) bool

从内存加载序列化的 ONNX 模型并执行权重重拟合。

参数:
  • model – 序列化的 ONNX 模型。

  • path – 模型文件的路径。仅当模型具有外部存储的权重时才需要。

返回值:

如果引擎中的所有权重都已成功重拟合,则为 true。

refit_from_file(self: tensorrt.tensorrt.OnnxParserRefitter, model: str) bool

从磁盘加载和解析 ONNX 模型并执行权重重拟合。

参数:

model – ONNX 模型的路径。

返回值:

如果模型加载成功,并且引擎中的所有权重都已成功重拟合,则为 true。

tensorrt.ErrorCode

解析器错误的类型

成员

SUCCESS

INTERNAL_ERROR

MEM_ALLOC_FAILED

MODEL_DESERIALIZE_FAILED

INVALID_VALUE

INVALID_GRAPH

INVALID_NODE

UNSUPPORTED_GRAPH

UNSUPPORTED_NODE

UNSUPPORTED_NODE_ATTR

UNSUPPORTED_NODE_INPUT

UNSUPPORTED_NODE_DATATYPE

UNSUPPORTED_NODE_DYNAMIC

UNSUPPORTED_NODE_SHAPE

REFIT_FAILED

class tensorrt.ParserError
code(self: tensorrt.tensorrt.ParserError) tensorrt.tensorrt.ErrorCode
返回值:

错误代码

desc(self: tensorrt.tensorrt.ParserError) str
返回值:

错误描述

file(self: tensorrt.tensorrt.ParserError) str
返回值:

发生错误的文件

func(self: tensorrt.tensorrt.ParserError) str
返回值:

发生错误的函数

line(self: tensorrt.tensorrt.ParserError) int
返回值:

发生错误的行号

local_function_stack(self: tensorrt.tensorrt.ParserError) List[str]
返回值:

发生错误的本地函数的当前堆栈跟踪

local_function_stack_size(self: tensorrt.tensorrt.ParserError) int
返回值:

发生错误的本地函数的当前堆栈跟踪的大小

node(self: tensorrt.tensorrt.ParserError) int
返回值:

发生错误的 Onnx 模型节点的索引

node_name(self: tensorrt.tensorrt.ParserError) str
返回值:

模型中发生错误的节点的名称

node_operator(self: tensorrt.tensorrt.ParserError) str
返回值:

模型中发生错误的节点操作的名称