Project Icon

onnx-tensorrt

ONNX 的 TensorRT 后端

本项目实现对ONNX模型的高效解析,支持在最新TensorRT 10.2版本上运行。还覆盖了多个ONNX操作符,提供详细的安装和构建指南。项目中包含C++和Python的使用示例,方便用户集成和运行ONNX模型。常见问题解答和变更日志有助于解决使用中的问题。

onnx-tensorrt 项目介绍

项目概述

onnx-tensorrt 项目是一个用于解析 ONNX 模型,并利用 TensorRT 加速其执行的工具。它旨在帮助开发者高效地在 NVIDIA 的硬件平台上运行深度学习模型。TensorRT 是 NVIDIA 开发的一种针对深度学习推理进行优化的高性能库,能够提供更高的执行效率和更低的延迟。

支持的 TensorRT 版本

此项目的开发基于最新版本的 TensorRT,即 10.6 版本。支持 TensorRT 的全维度和动态形状特性。如果需要使用更早的 TensorRT 版本,用户应该参考相应的分支。

支持的操作符

当前支持的 ONNX 操作符可以在支持矩阵中找到。开发者可以通过阅读相关文档来了解更多关于这些操作符的信息。

安装需求

要成功安装 onnx-tensorrt,用户需要预先安装以下依赖项:

  • Protobuf ≥ 3.0.x
  • TensorRT 10.6
  • TensorRT 10.6 开源库

构建步骤

推荐在 Docker 中构建 onnx-tensorrt。用户首先需要克隆项目仓库,然后进入项目根目录并按照以下步骤构建解析器库:

cd onnx-tensorrt
mkdir build && cd build
cmake .. -DTENSORRT_ROOT=<path_to_trt> && make -j
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

请注意,项目依赖于 CUDA,默认情况下将在 /usr/local/cuda 寻找 CUDA 工具包。如果 CUDA 安装路径不同,需要在 CMake 命令中指定正确的路径。

InstanceNormalization 性能

onnx-tensorrt 提供了两种 InstanceNormalization 的实现方式,分别是原生实现和插件实现。用户可以通过设置标志来切换实现方式,但应注意插件实现不支持与版本或硬件兼容的引擎构建。

可执行文件使用

项目提供了两个工具来帮助用户检查 ONNX 模型能否被解析和构建为 TensorRT 引擎:

  • 对于 C++ 用户,提供了 trtexec 工具,很容易在 TensorRT 根目录的 bin 文件夹中找到。
  • 对于 Python 用户,提供了 polygraphy 工具,可以用于相同的检查。

Python 模块

onnx-tensorrt 提供了 Python 绑定,可通过下述命令进行安装:

python3 -m pip install onnx==1.17.0
python3 setup.py install

Python 后端使用示例

在 Python 中使用 TensorRT 后端处理 ONNX 模型的示例如下:

import onnx
import onnx_tensorrt.backend as backend
import numpy as np

model = onnx.load("/path/to/model.onnx")
engine = backend.prepare(model, device='CUDA:1')
input_data = np.random.random(size=(32, 3, 224, 224)).astype(np.float32)
output_data = engine.run(input_data)[0]
print(output_data)
print(output_data.shape)

C++ 库使用

对于 C++ 用户,可以通过头文件 NvOnnxParser.h 使用 libnvonnxparser.so 库的 API。

测试

安装完成后,可以通过以下命令运行 ONNX 后端测试:

python onnx_backend_test.py OnnxBackendRealModelTest

或者运行所有测试:

python onnx_backend_test.py

预训练模型

用户还可以从 ONNX Model Zoo 获取预训练的 ONNX 格式模型,以加速项目的应用开发。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号