网上大部分树莓派安装onnx的都是基于树莓派3b的,或者说基于armv7架构的。
本文记录一下如何在最新的树莓派4b系统(armv8、python3.9)上编译安装onnx的过程。
1. 查看ARM CPU版本
1.1 方式1
cat /proc/version
获取当前系统的内核版本号及系统名称
pi@raspberrypi:~/Downloads/pybind11/build $ cat /proc/version
Linux version 6.1.21-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023
1.2 方式2
uname -a
获取当前系统的内核版本及系统名称
pi@raspberrypi:~/Downloads/pybind11/build $ uname -a
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
可以看到我的cpu版本是armv8
1.3 ARMv7架构
如果是armv7架构的直接看这个教程
how to install onnxruntime on raspberry pi 4
或者直接从下面的github中的wheels找到别人已经预编译好的onnx库
ONNX预编译库
下载到树莓派后直接安装
pip3 install onnxruntime-1.9.1-cp37-none-linux_armv7l.whl
2. 安装依赖
2.1 安装pytest
sudo pip install pytest
2.2 安装numpy
sudo pip install numpy
2.3 安装scipy
sudo pip install scipy
2.4 编译安装pybind11
Pybind11 是一个用于将 C++代码与Python解释器无缝集成的工具库。
允许开发者在C++代码中直接调用Python解释器,并在Python中使用C++库的功能。
这样的集成使得开发者能够充分利用C++的性能和功能优势,同时享受Python的简洁性和灵活性。
源码版本编译ONNX必须手动编译pybind11
2.4.1 下载pybind11源码
如果访问github卡住了就多试几次,重启一下ssh会话,重启一下树莓派也行。
git clone https://github.com/pybind/pybind11.git
2.4 2编译安装
cd pybind11/
mkdir build
cd build/
cmake ..
make -j4
sudo make install
3. 编译安装ONNX
3.1 下载ONNX源码
git clone https://github.com/onnx/onnx.git
3.2 编译安装ONNX
cd onnx/
python setup.py build
sudo python setup.py install
这里可能会遇到这样的报错
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer, pypa/build or other standards-based tools.
因为setup.py 安装已弃用,具体看https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
解决方法
pip install build
python -m build -w
等待编译
看到显示这个就算成功编译!
安装ONNX
pip3 install onnx-1.15.0-cp39-cp39-linux_aarch64.whl
安装成功!!文章来源:https://www.toymoban.com/news/detail-755142.html
参考文章
https://www.cnblogs.com/jourluohua/p/10235317.html文章来源地址https://www.toymoban.com/news/detail-755142.html
到了这里,关于树莓派4b(armv8) 64位系统编译安装onnx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!