在树莓派安装pytorch并不容易,因为最常用的pip安装方式无法使用,会直接报错(笔者多次报错,且目前没有找到解决方法)。在网上搜寻资料许久,又经过几天的尝试,终于完成了pytorch的配置。
相信不少人直接在网上搜索,搜索到直接使用源码编译的方式较多,这里不再赘述。但笔者在使用这一方法时,由于树莓派没有经历了几次下载失败。并且在尝试使用这一行代码时,会出现或因网络原因而停滞不前的情况。
git submodule update --init --recursive
最后尝试使用Windows端挂上梯子,通过git将代码clone,然后将源文件通过ftp传入树莓派进行编译。花了大量时间做好了编译准备,结果却在正式编译一段时间后,树莓派直接死机重启(现在想起来很可能是因为电源的电压电流不够导致的,当时使用的是普通5v1A充电头),编译的文件也损坏了(第二次尝试编译时报错)。
就笔者个人情况而言,并不推荐在树莓派3b+上使用源码编译的方式。
笔者经过一番搜索,在git上找到了pytorch专为arm架构使用的whl文件。
https://github.com/nmilosev/pytorch-arm-builds
上面有详细的操作提示,有包括torch1.1.0,1.2.0;torchvision0.3.0,0.4.0在内的多个版本,大家可以根据需要,选择对应的版本自行下载。
另外,感谢https://blog.csdn.net/ZhaoDongyu_AK47/article/details/105055856,笔者找到了相对更新的1.3.0和0.4.0版本,下载后安装成功。
安装前建议先更换镜像源和pip源,有关教程可自行百度。
安装步骤:
首先安装必要的依赖包
sudo apt-get install libopenblas-dev
安装numpy等依赖库(没有numpy的话也能成功编译,但是编译出来的PyTorch不支持numpy)
pip3 install numpy pyyaml
安装pytorch
pip3 install torch-1.3.0a0+de394b6-cp37-cp37m-linux_armv7l.whl
安装torchvision
pip3 install torchvision-0.4.1a0+a263704-cp37-cp37m-linux_armv7l.whl
最后,尝试在python命令行下输入
import torch
print(torch.rand(2,2))
得到结果
tensor([[0.9043, 0.8893],
[0.5651, 0.9442]])
表明torch已配置成功。
opencv的配置相对简单,其同样有源码编译及whl文件安装两种方式,这里笔者直接采用了whl的安装方式。
opencv的whl文件来源于https://www.piwheels.org/packages.html
将文件下载完成并传入树莓派后,首先使用如下代码安装依赖包
(注,树莓派不支持opencv4.0)
sudo apt install libqt4-test libqtcore4 libavutil56 libavformat58 libatk1.0-0 libcairo-gobject2 libavcodec58 libgtk-3-0 libpango-1.0-0 libqtgui4 libgdk-pixbuf2.0-0 libtiff5 libwebp6 libopenexr23 libswscale5 libjasper1 libcairo2 libpangocairo-1.0-0 libilmbase23
接着输入
pip3 install #你下载的版本
即可完成opencv的安装。