树莓派4搭建PyTorch教程
1.刷入系统
这部分可以参考树莓派入门手册或者网络上其它教程,感觉树莓派4对buster之前的系统兼容性不好,尽量刷buster吧。
2.安装python3.5
1.在buster中,python默认的版本是2.7和3.7,但是由于pytorch还没有针对python3.7的whl包,所以我们选择安装与pytorch最兼容的3.5版本。
sudo apt-get install python3.5 #默认安装的是python3.5.4
2.如果不想使用python2.7,可以将其卸载(最好不要随意卸载3.7,可能造成一些问题)。
sudo apt-get autoremove python2.7
卸载完后,如果想敲python直接出现python3.5的信息,那么:
sudo ln -s /usr/bin/python3.5/usr/bin/python
到这里,输入python后,你应该可以看到如下信息:
3.为python3.5安装pip。使用:
wget https://bootstrap.pypa.io/get-pip.py #这里可能需要FQ才能正常访问
sudo python3.5 ./get-pip.py
这样会卸载原来的pip,为python3.5安装好pip。使用:
pip3.5
如果成功安装,应该出现:
好了,现在前期的准表工作已经做好了。
3安装pytorch
1 .首先我们下载网上某些大神提供的torchXXX.whl文件,这里放一个链接:百度网盘 。提取码:zzbb。
2 .下载后用FileZilla软件将whl文件导入到/home/pi中(Linux文件系统权限比较麻烦)。
3 . cd到pi文件目录,使用:
sudo pip3.5 install torch-0.4.0a0+3749c58-cp35-cp35m-linux_armv7l.whl
进行安装。看到下图即安装成功:
4排查错误
1.试着在python中import torch,发现报错,如图:
可能是缺少libopenblas模块。按以下步骤安装:
sudo apt-cache search libopenblas
sudo apt install libopenblas-dev
再次导入,出现以下错误:
2.可能是numpy模块出现了问题,下面我们先卸载原来的numpy模块:sudo pip3.5 uninstall numpy
,重新安装试试,这里不知道为何,直接安装的话会出现不兼容的情况:
3.考虑用whl来安装,链接:百度网盘。提取码:v8c4。下载后同理放到pi文件夹中。
4.安装numpy:
sudo pip3.5 install numpy-1.17.2-cp35-cp35m-linux_armv7l.whl
成功后如图:
5.再次试着import torch,发现还是报错:
import numpy也出现了报错:
这里是缺少环境,安装:sudo apt-get install libatlas-base-dev
即可。
从上面我们可以看到,在import 路径/usr/local/lib/python3.5/dist-packages/numpy中的random时出了问题,而random是python自身的模块,下面我们考虑在__init__.py
文件中去掉import。
6.修改文件权限。cd到numpy文件目录下,直接无脑sudo chmod 777 __init__.py
。
7.打开init文件,找到:
可以看到,numpy默认导入了random,下面我们删去from . import random
。保存,重启:reboot。
8.再次尝试import,可以看到:
大功告成!