码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 源码导入onnx-tensorrt作为onnx解析器


    看tensorRT从零起步高性能部署(加群作者答疑,代码持续更新)-学习视频教程-腾讯课堂的第五章第二节,因为我用的tensorrt版本是8.4.2跟老师的8.0不一样,记录一下

    目录结构

    1. .
    2. |-- Makefile
    3. |-- myselu-kernel.cu
    4. |-- myselu-plugin.cpp
    5. |-- myselu-plugin.hpp
    6. |-- objs
    7. | |-- main.cpp.mk
    8. | |-- main.cpp.o
    9. | |-- onnx
    10. | | |-- onnx-ml.pb.cpp.mk
    11. | | `-- onnx-ml.pb.cpp.o
    12. | `-- onnx-tensorrt
    13. | |-- ConditionalHelpers.cpp.mk
    14. | |-- ConditionalHelpers.cpp.o
    15. | |-- ImporterContext.cpp.mk
    16. | |-- ImporterContext.cpp.o
    17. | |-- LoopHelpers.cpp.mk
    18. | |-- LoopHelpers.cpp.o
    19. | |-- ModelImporter.cpp.mk
    20. | |-- ModelImporter.cpp.o
    21. | |-- NvOnnxParser.cpp.mk
    22. | |-- NvOnnxParser.cpp.o
    23. | |-- OnnxAttrs.cpp.mk
    24. | |-- OnnxAttrs.cpp.o
    25. | |-- RNNHelpers.cpp.mk
    26. | |-- RNNHelpers.cpp.o
    27. | |-- ShapeTensor.cpp.mk
    28. | |-- ShapeTensor.cpp.o
    29. | |-- ShapedWeights.cpp.mk
    30. | |-- ShapedWeights.cpp.o
    31. | |-- builtin_op_importers.cpp.mk
    32. | |-- builtin_op_importers.cpp.o
    33. | |-- onnx2trt_utils.cpp.mk
    34. | |-- onnx2trt_utils.cpp.o
    35. | |-- onnxErrorRecorder.cpp.mk
    36. | `-- onnxErrorRecorder.cpp.o
    37. |-- result.txt
    38. |-- src
    39. | |-- main.cpp
    40. | |-- onnx
    41. | | |-- common
    42. | | | `-- stl_backports.h
    43. | | |-- onnx-ml.pb.cpp
    44. | | |-- onnx-ml.pb.h
    45. | | |-- onnx-ml.proto
    46. | | |-- onnx_pb.h
    47. | | `-- onnxifi.h
    48. | `-- onnx-tensorrt
    49. | |-- ConditionalHelpers.cpp
    50. | |-- ConditionalHelpers.hpp
    51. | |-- ImporterContext.cpp
    52. | |-- ImporterContext.hpp
    53. | |-- LoopHelpers.cpp
    54. | |-- LoopHelpers.hpp
    55. | |-- ModelImporter.cpp
    56. | |-- ModelImporter.hpp
    57. | |-- NvOnnxParser.cpp
    58. | |-- NvOnnxParser.h
    59. | |-- OnnxAttrs.cpp
    60. | |-- OnnxAttrs.hpp
    61. | |-- RNNHelpers.cpp
    62. | |-- RNNHelpers.hpp
    63. | |-- ShapeTensor.cpp
    64. | |-- ShapeTensor.hpp
    65. | |-- ShapedWeights.cpp
    66. | |-- ShapedWeights.hpp
    67. | |-- Status.hpp
    68. | |-- TensorOrWeights.hpp
    69. | |-- builtin_op_importers.cpp
    70. | |-- builtin_op_importers.hpp
    71. | |-- common.hpp
    72. | |-- half.h
    73. | |-- ieee_half.h
    74. | |-- libnvonnxparser.version
    75. | |-- onnx2trt.hpp
    76. | |-- onnx2trt_common.hpp
    77. | |-- onnx2trt_runtime.hpp
    78. | |-- onnx2trt_utils.cpp
    79. | |-- onnx2trt_utils.hpp
    80. | |-- onnxErrorRecorder.cpp
    81. | |-- onnxErrorRecorder.hpp
    82. | |-- onnx_utils.hpp
    83. | |-- toposort.hpp
    84. | |-- trt_utils.hpp
    85. | `-- utils.hpp
    86. `-- workspace
    87. `-- pro

    1. github上clone代码

    1. cd src/
    2. git clone -b 8.4-GA https://github.com/onnx/onnx-tensorrt.git

    2. 删除不需要的文件

    1. cd onnx-tensorrt
    2. rm -rf .github docs onnx_tensorrt third_party CMakeLists.txt LICENSE README.md main.cpp onnx_backend_test.py setup.py .gitignore .gitmodules onnx_trt_backend.cpp getSupportedAPITest.cpp

    3. 创建onnx,到onnx/onnx at f7ee1ac60d06abe8e26c9b6bbe1e3db5286b614b · onnx/onnx · GitHub下载几个需要的文件放到onnx里

    onnx_pb.h onnx-ml.proto onnxifi.h

    在onnx里创建common,到https://github.com/onnx/onnx/tree/f7ee1ac60d06abe8e26c9b6bbe1e3db5286b614b/onnx/common

    下载几个需要的文件放到common里

    stl_backports.h

    4. 修改源码

    onnx_pb.h的50到46行改成#include "onnx/onnx-ml.pb.h",删掉5到6行

    把onnx-tensorrt中所有的ONNX_NAMESPACE::替换成onnx::

    把ImporterContext.hpp的112行的onnx::替换成ONNX_NAMESPACE::

    5. protoc生成需要的cpp文件 

    1. cd onnx/
    2. # 注释onnx-ml.proto最后一行
    3. protoc onnx-ml.proto --cpp_out=./
    4. mv onnx-ml.pb.cc onnx-ml.pb.cpp

  • 相关阅读:
    Flutter饱受争议的7个缺点,大家怎么看?
    [安卓APP毕业设计源码]精品基于Uniapp+SSM实现的植物介绍APP[包运行成功]
    3D格式转换工具
    python运行hhblits二进制命令的包装器类
    快鲸scrm助力企业更快速实现成交转化
    苹果曝出严重安全漏洞,黑客可全面接管设备!!!
    基于JAVA的俄罗斯方块游戏的设计与实现
    postgresql源码学习(40)—— 崩溃恢复② - 恢复起点
    EquiVSet
    centos启动停留在started GNOME display manager
  • 原文地址:https://blog.csdn.net/qq_42001765/article/details/128078243
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号