You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:05:05