Onnx 解析器¶
- class tensorrt.OnnxParser(self: tensorrt.tensorrt.OnnxParser, network: tensorrt.tensorrt.INetworkDefinition, logger: tensorrt.tensorrt.ILogger)¶
此类用于将 ONNX 模型解析为 TensorRT 网络定义
- 变量:
num_errors –
int
先前调用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 ¶
- 返回值:
模型中发生错误的节点操作的名称