Builder

NetworkDefinitionCreationFlag

tensorrt.NetworkDefinitionCreationFlag

在网络创建时表示的不可变网络属性列表。例如,要启用显式批处理模式,请将值 1 << int(NetworkDefinitionCreationFlag.STRONGLY_TYPED) 传递给 create_network()

成员

EXPLICIT_BATCH : [已弃用] 已忽略,因为在 TensorRT 10.0 中网络始终为“显式批处理”。

STRONGLY_TYPED : 指定网络中的每个张量都具有在网络中定义的数据类型,仅遵循类型推断规则以及输入/算子注释。不允许设置层精度和层输出类型,并且网络输出类型将根据输入类型和类型推断规则推断

Builder

class tensorrt.Builder(self: tensorrt.tensorrt.Builder, logger: tensorrt.tensorrt.ILogger)

INetworkDefinition 构建 ICudaEngine

变量:
  • platform_has_tf32bool 平台是否支持 tf32。

  • platform_has_fast_fp16bool 平台是否具有快速原生 fp16。

  • platform_has_fast_int8bool 平台是否具有快速原生 int8。

  • max_DLA_batch_sizeint DLA 可以支持的最大批处理大小。对于任何张量,索引维度(CHW 以外的维度)的总量与请求的批处理大小的组合不应超过此函数返回的值。

  • num_DLA_coresint 此构建器可用的 DLA 引擎的数量。

  • error_recorderIErrorRecorder 由应用程序实现的 TensorRT 对象错误报告接口。

  • gpu_allocatorIGpuAllocator Builder 将使用的 GPU 分配器。所有获取的 GPU 内存都将使用此分配器。如果设置为 None,将使用默认分配器。

  • loggerILogger 创建重构器时提供的记录器。

  • max_threadsint Builder 可以使用的最大线程数。

参数:

logger – 要使用的记录器。

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

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

__init__(self: tensorrt.tensorrt.Builder, logger: tensorrt.tensorrt.ILogger) None
参数:

logger – 要使用的记录器。

build_engine_with_config(self: tensorrt.tensorrt.Builder, network: tensorrt.tensorrt.INetworkDefinition, config: tensorrt.tensorrt.IBuilderConfig) tensorrt.tensorrt.ICudaEngine

为给定的 INetworkDefinitionIBuilderConfig 构建网络。

此函数允许构建网络并创建引擎。

参数:
  • network – 网络定义。

  • config – 构建器配置。

返回值:

指向包含已构建引擎的 ICudaEngine 对象的指针。

build_serialized_network(self: tensorrt.tensorrt.Builder, network: tensorrt.tensorrt.INetworkDefinition, config: tensorrt.tensorrt.IBuilderConfig) tensorrt.tensorrt.IHostMemory

为给定的 INetworkDefinitionIBuilderConfig 构建并序列化网络。

此函数允许构建和序列化网络,而无需创建引擎。

参数:
  • network – 网络定义。

  • config – 构建器配置。

返回值:

指向包含序列化网络的 IHostMemory 对象的指针。

create_builder_config(self: tensorrt.tensorrt.Builder) tensorrt.tensorrt.IBuilderConfig

创建构建器配置对象。

参见 IBuilderConfig

create_network(self: tensorrt.tensorrt.Builder, flags: int = 0) tensorrt.tensorrt.INetworkDefinition

创建 INetworkDefinition 对象。

参数:

flags – 使用按位 OR 组合的 NetworkDefinitionCreationFlag

返回值:

一个空的 TensorRT INetworkDefinition

create_optimization_profile(self: tensorrt.tensorrt.Builder) tensorrt.tensorrt.IOptimizationProfile

创建一个新的优化配置文件。

如果网络有任何动态输入张量,则必须进行对 IOptimizationProfile.set_shape() 的适当调用。同样,如果存在任何形状输入张量,则需要对 IOptimizationProfile.set_shape_input() 进行适当的调用。

参见 IOptimizationProfile

get_plugin_registry(self: tensorrt.tensorrt.Builder) tensorrt.tensorrt.IPluginRegistry

获取构建器可以使用的本地插件注册表。

返回值:

构建器可以使用的本地插件注册表。

is_network_supported(self: tensorrt.tensorrt.Builder, network: tensorrt.tensorrt.INetworkDefinition, config: tensorrt.tensorrt.IBuilderConfig) bool

检查网络是否在 IBuilderConfig 设置的范围内。

参数:
  • network – 要检查配置合规性的网络定义。

  • config – 检查网络时要使用的构建器配置。

给定一个 INetworkDefinition 和一个 IBuilderConfig ,根据 EngineCapabilityBuilderFlagDeviceType 检查网络是否符合构建器配置的约束。

返回值:

True 如果网络在构建器配置指定的限制范围内,否则为 False 。此函数向注册的 ErrorRecorder 报告违反的条件。

注意:此函数将在返回之前同步 config.profile_stream 返回的 cuda 流。

reset(self: tensorrt.tensorrt.Builder) None

将构建器状态重置为默认值。