加载器

模块: polygraphy.backend.trt

class LoadPlugins(plugins=None, obj=None)[source]

基类: BaseLoader

一个直通加载器,用于从指定路径加载插件。直通在这里意味着它可以用于包装任何其他加载器。包装另一个加载器的目的是,您可以控制延迟评估时的执行顺序。

对于立即评估,请使用 load_plugins 代替

load_plugins(plugins=["/path/to/my/plugin.so", "/path/to/my/other_plugin.so"])

从指定路径加载插件。

参数:
  • plugins (List[str]) – 在推理之前要加载的插件库的路径列表。

  • obj – 要返回的对象或可调用对象。如果 obj 是可调用的,则额外的参数将转发到 obj。如果 obj 不可调用,则将返回它。

call_impl(*args, **kwargs)[source]
返回:

提供的 obj 参数,如果它是可调用的,则返回其返回值。如果未设置 obj,则返回 None

返回类型:

object

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

load_plugins(plugins=None, obj=None, *args, **kwargs)

LoadPlugins 的立即评估的功能变体。

从指定路径加载插件。

参数:
  • plugins (List[str]) – 在推理之前要加载的插件库的路径列表。

  • obj – 要返回的对象或可调用对象。如果 obj 是可调用的,则额外的参数将转发到 obj。如果 obj 不可调用,则将返回它。

返回:

提供的 obj 参数,如果它是可调用的,则返回其返回值。如果未设置 obj,则返回 None

返回类型:

object

class CreateNetwork(explicit_batch=None, strongly_typed=None)[source]

基类: BaseLoader

创建空 TensorRT 网络的函子。

创建空的 TensorRT 网络。

参数:
  • explicit_batch (bool) – 是否使用显式批处理模式创建网络。默认为 True。

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

call_impl()[source]
返回:

构建器和空网络。

返回类型:

(trt.Builder, trt.INetworkDefinition)

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

create_network(explicit_batch=None, strongly_typed=None)

CreateNetwork 的立即评估的功能变体。

创建空的 TensorRT 网络。

参数:
  • explicit_batch (bool) – 是否使用显式批处理模式创建网络。默认为 True。

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

返回:

构建器和空网络。

返回类型:

(trt.Builder, trt.INetworkDefinition)

class NetworkFromOnnxBytes(model_bytes, flags=None, plugin_instancenorm=None, strongly_typed=None)[source]

基类: BaseNetworkFromOnnx

解析 ONNX 模型以创建 trt.INetworkDefinition 的函子。

解析 ONNX 模型。

参数:
  • model_bytes (Union[bytes, Callable() -> bytes]) – 序列化的 ONNX 模型或返回该模型的 callable 对象。

  • flags (List[trt.OnnxParserFlag]) – OnnxParserFlag 列表,用于修改 ONNX 解析器的默认解析行为。默认为 None。

  • plugin_instancenorm (bool) – 是否通过清除解析器中的 NATIVE_INSTANCENORM 标志来强制使用 ONNX InstanceNorm 的插件实现。默认为 False

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

call_impl()[source]
返回:

TensorRT 网络,以及用于创建它的构建器和用于填充它的解析器。

返回类型:

(trt.IBuilder, trt.INetworkDefinition, trt.OnnxParser)

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

network_from_onnx_bytes(model_bytes, flags=None, plugin_instancenorm=None, strongly_typed=None)

NetworkFromOnnxBytes 的立即评估的功能变体。

解析 ONNX 模型。

参数:
  • model_bytes (Union[bytes, Callable() -> bytes]) – 序列化的 ONNX 模型或返回该模型的 callable 对象。

  • flags (List[trt.OnnxParserFlag]) – OnnxParserFlag 列表,用于修改 ONNX 解析器的默认解析行为。默认为 None。

  • plugin_instancenorm (bool) – 是否通过清除解析器中的 NATIVE_INSTANCENORM 标志来强制使用 ONNX InstanceNorm 的插件实现。默认为 False

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

返回:

TensorRT 网络,以及用于创建它的构建器和用于填充它的解析器。

返回类型:

(trt.IBuilder, trt.INetworkDefinition, trt.OnnxParser)

class NetworkFromOnnxPath(path, flags=None, plugin_instancenorm=None, strongly_typed=None)[source]

基类: BaseNetworkFromOnnx

解析 ONNX 模型以创建 trt.INetworkDefinition 的函子。此加载器支持权重存储在外部位置的模型。

从文件解析 ONNX 模型。

参数:
  • path (str) – 从中加载模型的路径。

  • flags (List[trt.OnnxParserFlag]) – OnnxParserFlag 列表,用于修改 ONNX 解析器的默认解析行为。默认为 None。

  • plugin_instancenorm (bool) – 是否通过清除解析器中的 NATIVE_INSTANCENORM 标志来强制使用 ONNX InstanceNorm 的插件实现。默认为 False

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

call_impl()[source]
返回:

TensorRT 网络,以及用于创建它的构建器和用于填充它的解析器。

返回类型:

(trt.IBuilder, trt.INetworkDefinition, trt.OnnxParser)

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

network_from_onnx_path(path, flags=None, plugin_instancenorm=None, strongly_typed=None)

NetworkFromOnnxPath 的立即评估的功能变体。

从文件解析 ONNX 模型。

参数:
  • path (str) – 从中加载模型的路径。

  • flags (List[trt.OnnxParserFlag]) – OnnxParserFlag 列表,用于修改 ONNX 解析器的默认解析行为。默认为 None。

  • plugin_instancenorm (bool) – 是否通过清除解析器中的 NATIVE_INSTANCENORM 标志来强制使用 ONNX InstanceNorm 的插件实现。默认为 False

  • strongly_typed (bool) – 是否将网络标记为强类型。默认为 False。

返回:

TensorRT 网络,以及用于创建它的构建器和用于填充它的解析器。

返回类型:

(trt.IBuilder, trt.INetworkDefinition, trt.OnnxParser)

class PostprocessNetwork(network, func, name=None)[source]

基类: BaseLoader

[实验性] 将给定的后处理函数应用于 TensorRT INetworkDefinition 的函子。

将给定的后处理函数应用于 TensorRT INetworkDefinition

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • func (Callable[[trt.INetworkDefinition], None]) – 接受名为 network 参数的 callable 对象。PostprocessNetwork 将通过此参数传入已解析的网络,然后 callable 对象可以对其进行修改。

  • name (Optional[str]) – 此后处理步骤的名称,用于日志记录目的。

call_impl()[source]
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

postprocess_network(network, func, name=None)

PostprocessNetwork 的立即评估的功能变体。

将给定的后处理函数应用于 TensorRT INetworkDefinition

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • func (Callable[[trt.INetworkDefinition], None]) – 接受名为 network 参数的 callable 对象。PostprocessNetwork 将通过此参数传入已解析的网络,然后 callable 对象可以对其进行修改。

  • name (Optional[str]) – 此后处理步骤的名称,用于日志记录目的。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

class ModifyNetworkOutputs(network, outputs=None, exclude_outputs=None)[source]

基类: PostprocessNetwork

修改 TensorRT INetworkDefinition 中的输出的函子。

修改 TensorRT INetworkDefinition 中的输出。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • outputs (Sequence[str]) – 要标记为输出的张量的名称。如果提供,这将覆盖网络中已标记的输出。如果使用 constants.MARK_ALL 值而不是列表,则网络中的所有张量都将被标记。

  • exclude_outputs (Sequence[str]) – 要排除作为输出的张量的名称。这与 outputs=constants.MARK_ALL 结合使用以省略输出时非常有用。

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

call_impl()
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

modify_network_outputs(network, outputs=None, exclude_outputs=None)

ModifyNetworkOutputs 的立即评估的功能变体。

修改 TensorRT INetworkDefinition 中的输出。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • outputs (Sequence[str]) – 要标记为输出的张量的名称。如果提供,这将覆盖网络中已标记的输出。如果使用 constants.MARK_ALL 值而不是列表,则网络中的所有张量都将被标记。

  • exclude_outputs (Sequence[str]) – 要排除作为输出的张量的名称。这与 outputs=constants.MARK_ALL 结合使用以省略输出时非常有用。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

class SetLayerPrecisions(network, layer_precisions)[source]

基类: PostprocessNetwork

在 TensorRT INetworkDefinition 中设置层精度的函子。

在 TensorRT INetworkDefinition 中设置层精度。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • layer_precisions (Dict[str, trt.DataType]) – 层名称到其所需计算精度的映射。

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

call_impl()
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

set_layer_precisions(network, layer_precisions)

SetLayerPrecisions 的立即评估的功能变体。

在 TensorRT INetworkDefinition 中设置层精度。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • layer_precisions (Dict[str, trt.DataType]) – 层名称到其所需计算精度的映射。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

class SetTensorDatatypes(network, tensor_datatypes)[source]

基类: PostprocessNetwork

在 TensorRT INetworkDefinition 中为网络 I/O 张量设置张量数据类型的函子。

在 TensorRT INetworkDefinition 中设置网络 I/O 张量数据类型。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • tensor_datatypes (Dict[str, trt.DataType]) – 张量名称到其所需数据类型的映射。

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

call_impl()
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

set_tensor_datatypes(network, tensor_datatypes)

SetTensorDatatypes 的立即评估的功能变体。

在 TensorRT INetworkDefinition 中设置网络 I/O 张量数据类型。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • tensor_datatypes (Dict[str, trt.DataType]) – 张量名称到其所需数据类型的映射。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

class SetTensorFormats(network, tensor_formats)[source]

基类: PostprocessNetwork

在 TensorRT INetworkDefinition 中设置网络 I/O 张量格式的函子。

在 TensorRT INetworkDefinition 中设置网络 I/O 张量格式。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • tensor_formats (Dict[str, List[trt.TensorFormat]]) – 张量名称到其允许格式的映射。

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

call_impl()
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

set_tensor_formats(network, tensor_formats)

SetTensorFormats 的立即评估的功能变体。

在 TensorRT INetworkDefinition 中设置网络 I/O 张量格式。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • tensor_formats (Dict[str, List[trt.TensorFormat]]) – 张量名称到其允许格式的映射。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

class LoadRuntime(path)[source]

基类: BaseLoader

加载 TensorRT IRuntime 的函子。

加载 TensorRT IRuntime

加载的运行时可以用于执行排除精简运行时的版本兼容引擎。

参数:

path (str) – 要从中加载运行时的共享库的路径。

call_impl()[source]
返回:

加载的运行时。

返回类型:

trt.Runtime

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

load_runtime(path)

LoadRuntime 的立即评估的功能变体。

加载 TensorRT IRuntime

加载的运行时可以用于执行排除精简运行时的版本兼容引擎。

参数:

path (str) – 要从中加载运行时的共享库的路径。

返回:

加载的运行时。

返回类型:

trt.Runtime

class EngineBytesFromNetwork(network, config=None, save_timing_cache=None)[source]

基类: BaseLoader

使用 TensorRT INetworkDefinition 构建序列化引擎的函子。

构建并序列化 TensorRT 引擎。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • config (Callable(trt.Builder, trt.INetworkDefinition) -> trt.IBuilderConfig) – TensorRT 构建器配置或返回该配置的 callable 对象。如果未提供,则使用具有默认参数的 CreateConfig 实例。

  • save_timing_cache (Union[str, file-like]) – 用于保存策略计时缓存的路径或类文件对象。任何现有的缓存都将被追加到其中。如果提供了路径,则该文件将被锁定以进行独占访问,以防止多个进程同时尝试更新计时缓存。

call_impl()[source]
返回:

创建的序列化引擎。

返回类型:

bytes

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

engine_bytes_from_network(network, config=None, save_timing_cache=None)

EngineBytesFromNetwork 的立即评估的功能变体。

构建并序列化 TensorRT 引擎。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • config (Callable(trt.Builder, trt.INetworkDefinition) -> trt.IBuilderConfig) – TensorRT 构建器配置或返回该配置的 callable 对象。如果未提供,则使用具有默认参数的 CreateConfig 实例。

  • save_timing_cache (Union[str, file-like]) – 用于保存策略计时缓存的路径或类文件对象。任何现有的缓存都将被追加到其中。如果提供了路径,则该文件将被锁定以进行独占访问,以防止多个进程同时尝试更新计时缓存。

返回:

创建的序列化引擎。

返回类型:

bytes

class EngineFromNetwork(network, config=None, save_timing_cache=None, runtime=None)[source]

基类: EngineBytesFromNetwork

类似于 EngineBytesFromNetwork 的函子,但在返回之前反序列化引擎。

构建 TensorRT 序列化引擎,然后将其反序列化。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • config (Callable(trt.Builder, trt.INetworkDefinition) -> trt.IBuilderConfig) – TensorRT 构建器配置或返回该配置的 callable 对象。如果未提供,则使用具有默认参数的 CreateConfig 实例。

  • save_timing_cache (Union[str, file-like]) – 用于保存策略计时缓存的路径或类文件对象。任何现有的缓存都将被追加到其中。如果提供了路径,则该文件将被锁定以进行独占访问,以防止多个进程同时尝试更新计时缓存。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

call_impl()[source]
返回:

已创建的引擎。

返回类型:

trt.ICudaEngine

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

engine_from_network(network, config=None, save_timing_cache=None, runtime=None)

EngineFromNetwork 的立即求值函数式变体。

构建 TensorRT 序列化引擎,然后将其反序列化。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • config (Callable(trt.Builder, trt.INetworkDefinition) -> trt.IBuilderConfig) – TensorRT 构建器配置或返回该配置的 callable 对象。如果未提供,则使用具有默认参数的 CreateConfig 实例。

  • save_timing_cache (Union[str, file-like]) – 用于保存策略计时缓存的路径或类文件对象。任何现有的缓存都将被追加到其中。如果提供了路径,则该文件将被锁定以进行独占访问,以防止多个进程同时尝试更新计时缓存。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

返回:

已创建的引擎。

返回类型:

trt.ICudaEngine

class EngineFromBytes(serialized_engine, runtime=None)[source]

基类: BaseLoader

从缓冲区反序列化引擎的 Functor。

从缓冲区反序列化引擎。

参数:
  • serialized_engine (Union[Union[str, bytes], Callable() -> Union[str, bytes]]) – 序列化引擎字节或返回它们的的可调用对象。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

call_impl()[source]
返回:

反序列化的引擎。

返回类型:

trt.ICudaEngine

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

engine_from_bytes(serialized_engine, runtime=None)

EngineFromBytes 的立即求值函数式变体。

从缓冲区反序列化引擎。

参数:
  • serialized_engine (Union[Union[str, bytes], Callable() -> Union[str, bytes]]) – 序列化引擎字节或返回它们的的可调用对象。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

返回:

反序列化的引擎。

返回类型:

trt.ICudaEngine

class EngineFromPath(path: str, runtime=None)[source]

基类: BaseLoader

从路径反序列化引擎的 Functor。

从路径反序列化引擎。

参数:
  • path (Union[str, Callable() -> str]) – 序列化引擎的文件路径或返回该路径的可调用对象。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

call_impl()[source]
返回:

反序列化的引擎。

返回类型:

trt.ICudaEngine

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

engine_from_path(path, runtime=None)

EngineFromPath 的立即求值函数式变体。

从路径反序列化引擎。

参数:
  • path (Union[str, Callable() -> str]) – 序列化引擎的文件路径或返回该路径的可调用对象。

  • runtime (Union[trt.Runtime, Callable() -> trt.Runtime]) – 反序列化引擎时使用的 runtime,或返回 runtime 的可调用对象。如果未提供 runtime,则将创建一个。

返回:

反序列化的引擎。

返回类型:

trt.ICudaEngine

class BytesFromEngine(engine)[source]

基类: BaseLoader

将引擎序列化为字节的 Functor。

返回的字节复制了序列化引擎的内存。使用 BufferFromEngine 直接引用内存。

将引擎序列化为字节。

参数:

engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

call_impl()[source]
返回:

序列化引擎复制到字节。

返回类型:

bytes

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

bytes_from_engine(engine)

BytesFromEngine 的立即求值函数式变体。

将引擎序列化为字节。

参数:

engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

返回:

序列化引擎复制到字节。

返回类型:

bytes

class BufferFromEngine(engine: ICudaEngine | Callable[[], ICudaEngine])[source]

基类: BaseLoader

将引擎序列化为缓冲区的 Functor。

返回的缓冲区直接引用序列化引擎的内存,并且不复制它。

将引擎序列化为 memoryview。

参数:

engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

call_impl() IHostMemory[source]
返回:

序列化引擎作为缓冲区。

返回类型:

IHostMemory

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

buffer_from_engine(engine)

BufferFromEngine 的立即求值函数式变体。

将引擎序列化为 memoryview。

参数:

engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

返回:

序列化引擎作为缓冲区。

返回类型:

IHostMemory

class SaveEngine(engine, path)[source]

基类: BaseLoader

将引擎保存到指定路径的 Functor。

将引擎保存到指定路径。

参数:
  • engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

  • path (str) – 保存引擎的路径。

call_impl()[source]
返回:

已保存的引擎。

返回类型:

trt.ICudaEngine

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

save_engine(engine, path)

SaveEngine 的立即求值函数式变体。

将引擎保存到指定路径。

参数:
  • engine (Union[trt.ICudaEngine, Callable() -> trt.ICudaEngine]) – 引擎或返回引擎的可调用对象。

  • path (str) – 保存引擎的路径。

返回:

已保存的引擎。

返回类型:

trt.ICudaEngine

class OnnxLikeFromNetwork(network)[source]

基类: BaseLoader

基于 TensorRT 网络创建类似 ONNX 但不是有效 ONNX 模型的 Functor。

[高度实验性] 从 TensorRT 网络创建类似 ONNX 但不是有效 ONNX 的模型。这使用 ONNX 格式,但生成的节点不是有效的 ONNX 运算符。因此,这应用于可视化或调试目的。

生成的模型包含足够的信息来忠实地重建 TensorRT 网络,但确实保留了网络的结构和许多层参数。

参数:

network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

call_impl()[source]
返回:

TensorRT 网络的类似 ONNX 但不是有效 ONNX 的表示。

返回类型:

onnx.ModelProto

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

onnx_like_from_network(network)

OnnxLikeFromNetwork 的立即求值函数式变体。

[高度实验性] 从 TensorRT 网络创建类似 ONNX 但不是有效 ONNX 的模型。这使用 ONNX 格式,但生成的节点不是有效的 ONNX 运算符。因此,这应用于可视化或调试目的。

生成的模型包含足够的信息来忠实地重建 TensorRT 网络,但确实保留了网络的结构和许多层参数。

参数:

network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

返回:

TensorRT 网络的类似 ONNX 但不是有效 ONNX 的表示。

返回类型:

onnx.ModelProto

class MarkDebug(network, mark_debug)[source]

基类: PostprocessNetwork

在 TensorRT INetworkDefinition 中将 tensors 标记为 debug tensors 的 Functor。

在 TensorRT INetworkDefinition 中将 tensors 标记为 debug tensors。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • mark_debug (List[str]) – 要标记为 debug tensors 的 tensor 名称列表。

__call__(*args, **kwargs)

通过将参数转发到 call_impl 来调用加载器。

注意: call_impl 不应直接调用 - 请改用此函数。

call_impl()
返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]

mark_debug(network, mark_debug)

MarkDebug 的立即求值函数式变体。

在 TensorRT INetworkDefinition 中将 tensors 标记为 debug tensors。

参数:
  • network (Union[Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]], Callable() -> Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]) – 包含 TensorRT 构建器、网络和可选解析器的元组,或返回该元组的 callable 对象。要省略解析器,请返回仅包含构建器和网络的元组。

  • mark_debug (List[str]) – 要标记为 debug tensors 的 tensor 名称列表。

返回:

修改后的网络以及构建器和解析器(如果提供)。

返回类型:

Tuple[trt.Builder, trt.INetworkDefinition, Optional[parser]]