TensorRT常用方法缺失:build_cuda_engine属性不存在问题咨询
TensorRT报错
build_cuda_engine不存在的解决方法 问题原因
你遇到的报错是TensorRT版本迭代导致的API废弃,和安装步骤无关。TensorRT 8.0及以上版本已经完全移除了build_cuda_engine方法,改用新的API构建Engine。
修正后的代码示例
静态Batch场景
import tensorrt as trt # 初始化日志器 logger = trt.Logger(trt.Logger.INFO) builder = trt.Builder(logger) # 创建Network,指定EXPLICIT_BATCH标志(TensorRT 7+推荐使用) network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) # 创建Builder配置,设置工作空间大小(示例为1GB) config = builder.create_builder_config() config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 1 << 30) # 构建Engine engine = builder.build_engine(network, config)
动态Batch场景(支持可变输入Batch Size)
import tensorrt as trt logger = trt.Logger(trt.Logger.INFO) builder = trt.Builder(logger) network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) # 创建配置并设置工作空间 config = builder.create_builder_config() config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 1 << 30) # 创建优化Profile,定义动态Batch的范围(最小/最优/最大) profile = builder.create_optimization_profile() # 假设输入张量为"input",格式为(Batch, Channel, Height, Width) input_tensor = network.add_input("input", trt.float32, (-1, 3, 224, 224)) # 设置Batch范围:最小1,最优4,最大8 profile.set_shape(input_tensor.name, (1, 3, 224, 224), (4, 3, 224, 224), (8, 3, 224, 224)) config.add_optimization_profile(profile) # 构建Engine engine = builder.build_engine(network, config)
额外说明
- 可以通过
print(trt.__version__)命令查看当前TensorRT版本,确认是否为8.0+。 - 旧版
create_network(batch_size)的写法也已废弃,现在必须传入NetworkDefinitionCreationFlag,EXPLICIT_BATCH是当前标准模式,支持静态/动态Batch配置。
内容的提问来源于stack exchange,提问作者CraZyCoDer
相关产品推荐
相关产品推荐

