一、核心定位
二、关键优化手段
三、典型流程
四、适用场景
五、代码演示
最精简、能跑通的 TensorRT 完整流程:
PyTorch → ONNX → TensorRT 引擎 → GPU 推理,这是工业部署标准路线。
PyTorch → ONNX → TensorRT 引擎 → GPU 推理,这是工业部署标准路线。
1. 环境说明
- 必须是 NVIDIA GPU
- 已安装:CUDA + TensorRT(或用 Python 包)
pip install torch onnx onnxruntime tensorrt
2. 完整代码(复制可跑)
步骤 1:PyTorch 导出 ONNX
import torch
import torch.nn as nn
# 简单模型
class Model(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(3, 2)
def forward(self, x):
return self.fc(x)
model = Model().eval()
dummy = torch.randn(1, 3)
# 导出 ONNX
torch.onnx.export(
model, dummy, "model.onnx",
input_names=["input"],
output_names=["output"],
opset_version=17
)
步骤 2:ONNX → 生成 TensorRT 引擎
import tensorrt as trt
TRT_LOGGER = trt.Logger(trt.Logger.WARNING)
def build_engine(onnx_path, engine_path):
builder = trt.Builder(TRT_LOGGER)
network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
parser = trt.OnnxParser(network, TRT_LOGGER)
with open(onnx_path, 'rb') as f:
parser.parse(f.read())
config = builder.create_builder_config()
# 启用 FP16 加速
config.set_flag(trt.BuilderFlag.FP16)
serialized_engine = builder.build_serialized_network(network, config)
with open(engine_path, 'wb') as f:
f.write(serialized_engine)
build_engine("model.onnx", "model.trt")
步骤 3:加载 TensorRT 引擎并推理
import tensorrt as trt
import numpy as np
TRT_LOGGER = trt.Logger(trt.Logger.WARNING)
def load_engine(engine_path):
with open(engine_path, 'rb') as f:
runtime = trt.Runtime(TRT_LOGGER)
return runtime.deserialize_cuda_engine(f.read())
engine = load_engine("model.trt")
context = engine.create_execution_context()
# 输入
input_np = np.random.randn(1, 3).astype(np.float32)
output_np = np.empty((1, 2), dtype=np.float32)
# GPU 推理
import pycuda.driver as cuda
import pycuda.autoinit
d_input = cuda.mem_alloc(input_np.nbytes)
d_output = cuda.mem_alloc(output_np.nbytes)
bindings = [int(d_input), int(d_output)]
cuda.memcpy_htod(d_input, input_np)
context.execute_v2(bindings)
cuda.memcpy_dtoh(output_np, d_output)
print("TensorRT 推理结果:")
print(output_np)
3. 你只要记住这张图
- 训练:PyTorch / TensorFlow
- 中转:ONNX
- 部署加速:TensorRT
- 输出:
.trt引擎文件(GPU 专用,超快)
数据统计
数据评估
关于TensorRT特别声明
本站蜜蜂导航提供的TensorRT都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由蜜蜂导航实际控制,在2026年2月11日 下午1:52收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,蜜蜂导航不承担任何责任。
相关导航
暂无评论...
