太长不看版本

三个步骤:
1.从piwheel官方下载tensorflow安装包
2.更改国内pip3镜像源
3.解决安装中依赖包的问题

虽然树莓派的速度比不上PC,但是他小功耗、价格便宜的特点,还是很多同学都用来学习机器学习的相关课程。

tensorflow作为机器学习的大佬,一般来说是绕不过去的。好在tensorflow官方就是支持树莓派的,我们可以直接在树莓派上进行练习。

可是,直接pip或者pip3安装,总是有很多奇奇怪怪的问题。主要是由于两个点:

国内的pip源中好像没有收录tensorflow,于是必须到官方的piwheels源才能安装tensorflow。可是由于一些原因,速度非常的缓慢,还经常中途断开。好不容易tensorflow自己没有断开了吧,在安装依赖的时候又经常断开,导致安装失败

pip自行安装的是tensorflow1.13.1版本,可是明明都到2.0了,新功能不说,中间修复了很多奇奇怪怪的bug。这种情况下,还用这么老的版本,不是坑人么……

于是,这篇文章就来教大家,如何在树莓派上安装最新的tensorflow。

1.从piwheels下载官方安装包

在安装的过程中,找到了官方的下载源地址:

https://www.piwheels.org/simple/tensorflow/tensorflow-1.13.1-cp35-none-linux_armv7l.whl

于是尝试去掉后面的包,果然进入了一个新天地

https://www.piwheels.org/simple/tensorflow/

在列表中可以看到,官方已经支持几乎是最新的1.9.0了。

下载的时候注意一下版本:

1.中间的CPXX,代表python版本,选错了无法安装。例如python3.5,应该选择CP35,pytho2.7就选择CP27

2.树莓派型号,如果是pi1或者pizero(包括zerow),就选择结尾是armv6l的,如果是2/3(包括3B/3B+)就选择结尾是armv7l.whl的

下载完成后,自行想办法发到树莓派目录下就可以下一步了。

2.更改国内pip源

进行这个操作,主要是为了解决在安装过程中,依赖包下载速度过慢,导致安装出错的问题。

树莓派是定制系统,所以配置文件的位置比较奇怪,在/etc/pip.conf,进入修改就好。

对于修改有疑问的同学请看这个文章:树莓派更改pip为国内源

3.解决安装中依赖包的问题

首先,安装之前需要先解决numpy的一个依赖:

sudo apt install libatlas-base-dev

然后在安装过程中如果被打断,可以观察具体是缺少了哪个包,然后手动安装上。

这里要提出的是有一些包,安装的过程中可能会提示说此包仅用于python2,python3已经不需要了。可是tensorflow又需要,怎么办呢?

这种时候,就去查看对应包的版本,理论上来说,肯定会有一些老的版本能够兼容的,所以在安装的时候指定版本就可以了,类似于下面的语法

sudo pip3 install numpy==1.1.0

4.正式安装tensorflow

解决了上面的问题以后就可以开始正式安装tensorflow了

命令行进入下载的安装文件目录(例如下载到了pi下面,就进入这个目录)

然后使用以下命令:

sudo pip3 install tensorflow-1.13.1-cp35-none-linux_armv7l.whl

后面的文件名按照自己下载的文件名来更改。

接着系统就会开始检查依赖状态,然后进行安装。等待一段时间以后就应该完成了。


到这里,tensorflow应该就已经完成了安装,可以打开python3命令行进行import的测试。

话说回来,新版本的rasbian系统,全面采用了python3.7,导致能用的包还是只有1.13.1……如果想用更新的版本,就要尝试自己编译了,另一条非常痛苦的道路……

祝大家在机器学习的路上越挫越勇~~~