当前位置: 首页 > news >正文

Tensorrt的安装、转化、以及推理

1、Tensorrt的安装:

        1)下载地址:一般下载GA版本到本地,EA为试用版,下载TAR包,这种安装最简单

TensorRT Download | NVIDIA Developerhttps://developer.nvidia.com/tensorrt/download        2)根据安装指南:Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

根据12345678安装;

其中第4步为添加环境变量:

cat ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:*****、TensorRT-${version}/lib

source ~/.bashrc

        3)验证安装是否成功

import tensorrt as trt

print(trt.__version__)

print(trt.__file__)

二、onnx转tensorrt的engine操作

import onnx
import tensorrt as trt

# 加载 ONNX 模型
onnx_model = onnx.load('./model.onnx')
onnx.checker.check_model(onnx_model)

# 创建 TensorRT 日志记录器
TRT_LOGGER = trt.Logger(trt.Logger.WARNING)

# 创建 TensorRT 构建器
builder = trt.Builder(TRT_LOGGER)

# 创建网络定义
network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))

# 创建 ONNX 解析器
parser = trt.OnnxParser(network, TRT_LOGGER)

# 解析 ONNX 模型
if not parser.parse(onnx_model.SerializeToString()):
    for error in range(parser.num_errors):
        print(parser.get_error(error))
    raise RuntimeError("Failed to parse ONNX model")

# 设置构建器配置
config = builder.create_builder_config()
# 使用 set_memory_pool_limit 方法设置工作空间大小
config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 1 << 30)  # 1GB
config.set_flag(trt.BuilderFlag.FP16)  # 使用 FP16 精度

# 构建序列化的网络
serialized_engine = builder.build_serialized_network(network, config)
if serialized_engine is None:
    raise RuntimeError("Failed to build serialized TensorRT network")

# 创建 TensorRT 运行时
runtime = trt.Runtime(TRT_LOGGER)

# 反序列化引擎
engine = runtime.deserialize_cuda_engine(serialized_engine)

if engine is None:
    raise RuntimeError("Failed to deserialize TensorRT engine")

# 保存 TensorRT 引擎
with open('model.engine', 'wb') as f:
    f.write(engine.serialize())

三、使用engine的推理代码:

相关文章:

  • 李飞飞、吴佳俊团队新作:FlowMo如何以零卷积、零对抗损失实现ImageNet重构新巅峰
  • 虚拟机(二):Android 篇
  • 【春招笔试】阿里云2025.03.20
  • 用C#实现UDP服务器
  • 线程概念与控制(上)
  • 小智AI音频开发 libopus + Eclipse C/C++ MinGW 编解码测试用例
  • Leetcode 最小基因变化
  • 鸿蒙生态圈暗战:数字孪生三强争霸谁将主宰消费电子未来?
  • 【MySQL数据库】视图 + 三范式
  • Zabbix监控K8s集群
  • C语言do...while语句将数字反转后输出
  • Linux内核NIC网卡驱动实战案例分析
  • 【AI】先搞明白MCP、 API、ANP、Agora、agents.json、LMOS、AITP开源通信协议再学大模型
  • “十五五”时期航空弹药发展环境分析
  • 生物化学笔记:医学免疫学原理06 抗体药物 多克隆抗体+单克隆抗体(各代单克隆抗体发展历程)
  • Oracle Database In-Memory 23ai 新特性
  • LeetCode热题100JS(79/100)第十五天|347|295|121|55|45
  • ssh连接笔记
  • [AI问答] 保加利亚乳酸菌经过很多代可能会如何变异
  • 什么是SQL?
  • 习近平出席俄罗斯纪念苏联伟大卫国战争胜利80周年庆典
  • 国家主席习近平在莫斯科出席红场阅兵式
  • 复旦发文缅怀文科杰出教授裘锡圭:曾提出治学需具备三种精神
  • 美联储主席:美联储工作方式不会受特朗普影响,从未寻求与总统会面
  • 4月外汇储备增加410亿美元,黄金储备连续6个月增加
  • 巴基斯坦军方称印度袭击已致26死46伤