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_tf32 –
bool
平台是否支持 tf32。platform_has_fast_fp16 –
bool
平台是否具有快速原生 fp16。platform_has_fast_int8 –
bool
平台是否具有快速原生 int8。max_DLA_batch_size –
int
DLA 可以支持的最大批处理大小。对于任何张量,索引维度(CHW 以外的维度)的总量与请求的批处理大小的组合不应超过此函数返回的值。num_DLA_cores –
int
此构建器可用的 DLA 引擎的数量。error_recorder –
IErrorRecorder
由应用程序实现的 TensorRT 对象错误报告接口。gpu_allocator –
IGpuAllocator
Builder
将使用的 GPU 分配器。所有获取的 GPU 内存都将使用此分配器。如果设置为None
,将使用默认分配器。logger –
ILogger
创建重构器时提供的记录器。max_threads –
int
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 ¶
为给定的
INetworkDefinition
和IBuilderConfig
构建网络。此函数允许构建网络并创建引擎。
- 参数:
network – 网络定义。
config – 构建器配置。
- 返回值:
指向包含已构建引擎的
ICudaEngine
对象的指针。
- build_serialized_network(self: tensorrt.tensorrt.Builder, network: tensorrt.tensorrt.INetworkDefinition, config: tensorrt.tensorrt.IBuilderConfig) tensorrt.tensorrt.IHostMemory ¶
为给定的
INetworkDefinition
和IBuilderConfig
构建并序列化网络。此函数允许构建和序列化网络,而无需创建引擎。
- 参数:
network – 网络定义。
config – 构建器配置。
- 返回值:
指向包含序列化网络的
IHostMemory
对象的指针。
- create_builder_config(self: tensorrt.tensorrt.Builder) tensorrt.tensorrt.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()
进行适当的调用。
- 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
,根据EngineCapability
、BuilderFlag
和DeviceType
检查网络是否符合构建器配置的约束。- 返回值:
True
如果网络在构建器配置指定的限制范围内,否则为False
。此函数向注册的ErrorRecorder
报告违反的条件。
注意:此函数将在返回之前同步
config.profile_stream
返回的 cuda 流。
- reset(self: tensorrt.tensorrt.Builder) None ¶
将构建器状态重置为默认值。