目前,树莓派系统raspbian中,Python已经提升到3.9版本。然而,目前网上很少有arm版本中python3.9的pytorch。对此,有三种解决方法:

  • 将树莓派版本变更为比较老的版本(python版本为3.7)
  • 将树莓派上的Python版本变成3.7;
  • 对torch源码进行编译(编译时间过长,与github连接不稳定,容易导致编译数据下载不完善)

综合下来,这三种方法中,第一种方法是最简单,也是最容易实现的,因此本文采用这种方式。

对于树莓派的版本,我们可以使用2020-12-04版本的,其中可供下载网址为:https://mirrors.ustc.edu.cn/raspberry-pi-os-images/raspios_lite_armhf/images/raspios_lite_armhf-2020-12-04/。 树莓派版本为:Raspberry Pi 3 Model B+ v1.3。

树莓派系统的写入可以使用Raspberry Pi Imager(官方工具),存储卡的格式化可以使用SD Card Formatter。

注意:本文会从系统安装好后的换源、numpy安卓、torch安装三步进行,如果是只需要安装torch,看最后一部分即可。 如果系统版本不一致,可能存在torch无法安装,具体可能由于python不匹配导致。

树莓派系统所使用的硬件和python版本如下:

  1. 树莓派终端输入 uname -a 确认自己的版本为armv71版本
  2. 树莓派终端输入 python3 确认自己的python版本为python3.7

换源

刷完系统后,换源可以加速树莓派中软件的下载速度。对于系统的换源,需要更改两个文件,具体可以为: 编辑/etc/apt/sources.list文件,首先将原文件的所有行用“#”注释,接着在后面添加以下内容:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

buster 为自己树莓派的版本,在sources.list中也可以看到这个信息。

接着,还需要编辑/etc/apt/sources.list.d/raspi.list文件,首先将原文件的所有行用“#”注释,接着在后面添加以下内容:

deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

最后,换源后记得更新下apt:

sudo apt-get update && sudo apt-get upgrade

numpy安装

安装完numpy后,系统会提升某文件不存在,并且在报警给中一个地址,我们需要对该文件添加到~/.bashrc中,即:

export PATH=/home/pi/.local/bin:$PATH

添加完后,记得更新下source:

source ~/.bashrc

如果还不能使用(报libcblas.so.3错误),则需要添加以下内容:

sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev 
sudo apt-get install libqt4-test

torch安装

torch的安装参考别人的博客,输入以下的执行命令:

pip3 install https://wintics-opensource.s3.eu-west-3.amazonaws.com/torch-1.3.0a0%2Bdeadc27-cp37-cp37m-linux_armv7l.whl

参考

[1] 树莓派中换源:https://blog.csdn.net/qq_31443999/article/details/89354060

[2] numpy报libcblas.so.3错:https://blog.csdn.net/qq_51718832/article/details/110726353

[3] 树莓派Python3.7版本安装torch:https://www.cnblogs.com/clayyjh/p/14500930.html