Ubuntu下安装和编译onnxruntime

这篇具有很好参考价值的文章主要介绍了Ubuntu下安装和编译onnxruntime。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

onnxruntime是一种用于onnx格式的机器学习模型的高性能推理引擎,适用于Linux,Windows、Mac及嵌入式设备。

这篇博客记录了编译onnxruntime的步骤及在此过程种遇到的问题及解决方法。

1 下载

git clone --depth 1 --branch v1.12.1 --recursive https://github.com/Microsoft/onnxruntime

下载过程种遇到的问题及解决方法记录

  1. fatal: unable to access 'https://github.com/...': OpenSSL SSL_read: Connection was aborted, errno 10053

需解除ssl网络认证,

git config --global http.sslVerify false
  1. 与下载速度相关

如果git clone速度过慢,可参考以下博客修改

《https://www.cnblogs.com/isLinXu/p/16990977.html》

如果还是clone不下来,建议直接下载官方提供的二进制文件,官网链接如下:

https://github.com/microsoft/onnxruntime/tags

可参考本机的cuda、cudnn版本来选择安装的onnxruntime版本,对应关系如下:

https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html文章来源地址https://www.toymoban.com/news/detail-451141.html

  1. error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly before end

解决方法一(换掉git的http版本):

git config --global http.version HTTP/1.1

解决方法二(增加git buffer的大小):

git config --global http.postBuffer 524288000
  1. Failed to connect to github.com port 443 after 21052 ms: Timed out

这是由git端口与系统代理不同所导致,

先打开设置->网络与Internet->代理,并记录当前代理的地址及端口号,

Ubuntu下安装和编译onnxruntime

然后修改git的地址和端口,

git config --global http.proxy http://[地址]:[端口]
git config --global https.proxy http://[地址]:[端口]

2 编译

编译GPU版本

./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home [你的cuda安装目录] --cudnn_home [你的cuda安装目录]

其中,--use_cuda表示使用的是gpu版的onnxruntime,--cuda_home、--cudnn_home均指向自己安装cuda的目录,比如“/usr/local/cuda-11.4”

onnxruntime与cuda、cudnn对应版本的关系可参考如下官方推荐:

https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

编译CPU版本

./build.sh --skip_tests --config Release --build_shared_lib

编译TensorRT版本

./build.sh \
    --parallel 8 \
    --use_cuda \
    --cuda_version=11.1 \
    --cuda_home=[你的cuda安装目录] \
    --cudnn_home=[你的cuda安装目录] \
    --use_tensorrt \
    --tensorrt_home=[你的tensorrt安装目录] \
    --build_shared_lib --enable_pybind \
    --build_wheel --update --build \
    --config Release

到了这里,关于Ubuntu下安装和编译onnxruntime的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ONNX:C++通过onnxruntime使用.onnx模型进行前向计算【下载的onnxruntime是编译好的库文件,可直接使用】

    微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,旨在将所有模型格式统一为一致,更方便地实现模型部署。现在大多数的深度学习框架都支持ONNX模型转出并提供相应的导出接口。 ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式

    2024年02月15日
    浏览(44)
  • Ubuntu 安装编译 opencv

    配置 Ubuntu 镜像源 由于部分镜像源并没有将软件包的版本更新到最新,国外官方镜像源访问与下载速度较慢,所以需要更新镜像源为以下几种: 阿里镜像源 清华大学镜像源 163镜像源 中科大镜像源 系统可以同时包括四种镜像源,确保能够及时搜索到所有的软件的最新版本 环

    2024年02月08日
    浏览(42)
  • CutLER:一种用于无监督目标检测和实例分割的方法

    本文分享自华为云社区《CutLER:一种用于无监督目标检测和实例分割的方法》,作者:Hint。 目标检测是计算机视觉中的一种重要任务,使AI系统感知、推理、理解目标。训练定位模型需要特别的标注,比如目标的框、掩膜、定位点等。本文的工作研究了无监督的目标检测和实

    2024年02月12日
    浏览(40)
  • Ubuntu 交叉编译工具链安装

    ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,我们在第三章“Linux C 编程入门”里面已经讲解了如何在 Liux 进行 C 语言开发,里面使用 GCC 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架

    2024年02月15日
    浏览(51)
  • 论文阅读-AFLNET:一种用于网络协议的灰盒模糊器

    现有服务器模糊测试的困难性: 服务器具有庞大的状态空间 服务器的响应依赖于当前消息和内部服务器状态 现有模糊测试方法在处理服务器模糊测试时的局限性 协议规范和实际协议实现之间的不匹配 AFLNet的创新(解决问题): 变异方法:AFLNet采用了变异方法,通过对初始

    2024年02月07日
    浏览(46)
  • NodeFormer:一种用于节点分类的可扩展图结构学习Transformer

    图神经网络已经被广泛研究用于利用互连数据进行学习。尽管如此,最近的证据表明,GNN的缺陷与过度挤压、异质性、处理长程依赖性、边缘不完全性有关,尤其是完全没有图。虽然一个合理的解决方案是学习用于消息传递的新的自适应拓扑,但有关二次复杂性的问题阻碍了

    2024年02月11日
    浏览(58)
  • Elasticsearch:ESQL 简介 — 一种用于灵活、迭代分析的新查询语言

    作者:Seth Payne 特别声明 :截止撰写该博文,在目前的公开发行版中,该功能还不能公开测试。这个功能将在未来的发行版中发布。 长期以来,Elastic Platform 一直被视为搜索用例和机器生成数据的分析系统。 分析专注于处理摄入的数据,其中重要的思想是如何在 Elasticsearch

    2023年04月23日
    浏览(33)
  • 【运维】Ubuntu,如何在Ubuntu系统中编译和安装OpenCV, apt安装OpenCV

    在C++开发中,使用OpenCV是一个常见的需求。您可以选择使用conan构建包,或者直接将OpenCV安装到系统中。官方文档提供了详细的教程,可以在这里找到:OpenCV官方文档 然而,在这里我们将演示一种自己的安装方法,逐步进行操作: 步骤1:更新系统 在安装任何软件之前,请确

    2024年01月23日
    浏览(53)
  • 文献学习-14-一种用于高精度微创手术的纤维机器人

    Authors: Mohamed E. M. K. Abdelaziz1,2 †, Jinshi Zhao1,3 †, Bruno Gil Rosa1,2 , Hyun-Taek Lee4 , Daniel Simon3,5 , Khushi Vyas1,2 , Bing Li6,7 , Hanifa Koguna3 , Yue Li1 , Ali Anil Demircali3 , Huseyin Uvet8 , Gulsum Gencoglan9,10, Arzu Akcay11,12, Mohamed Elriedy13, James Kinross14, Ranan Dasgupta15, Zoltan Takats3,5 , Eric Yeatman2 , Guang-Zhong Yang16

    2024年03月10日
    浏览(64)
  • BO(Business Object)是一种用于表示业务对象的设计模式

    BO是 Business Object 的缩写,是一种用于表示业务对象的设计模式。在Java中,BO的主要作用是 封装业务逻辑 ,实现业务流程的可重用性和可维护性。 BO主要有以下几个作用: 实现业务逻辑的封装:将业务逻辑封装在BO对象中,可以方便地对业务逻辑进行管理和维护,实现业务流

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包