树莓派zero w (raspberrypi 0 w)tensorflow库的艰难安装
- 最最最想说的 写在前面
- raspberrypi官方系统的安装
- 安装tensorflow库的流程
- 赶紧测试一下tensorflow
- 这是我安装tensorflow过程中遇到的奇葩报错
最最最想说的 写在前面
你好! 本文作者@python_withot_c ,大连理工大学在读本科生。在疫情又一次爆发的7月底,不能返校的我打算入手一块树莓派。处于性价比和初学的原因,我选择了raspberrypi zero w,但是在这块板子上安装库的精力让我十分难忘。由于这个板子的小众,并且是老版本的armv6构架,使得很多库在国内的源没有对应安装包,python版本也没有达到其他armv7构架的3.7+版本,默认的源下载库时候不仅慢而且出现了一下not found 和其他各种各样的报错,令使用者十分难受,尤其是这个莫名的bug,离线安装包莫名的失效,如图安装包为cp6-none-linux——armv6l 在wheel的support元组里,但是安装会报错。pip 更新到最新版(20.0)后可以采用 pip debug --verbose 命令查看支持的whl文件格式。如何解决这个问题,我会在下面说明。
最后:对于这两天查阅资料各类资料来安装tensorflow和各种费时尝试后,我由衷的想对没有入手raspberrypi zero 的同僚们说一句:
直接入手3B+或者4B吧,zero太不友好。
raspberrypi官方系统的安装
关于raspberrypi官方系统(Raspberry Pi OS)
的安装这里就不多赘述了,更详细的文章可以参考这篇文章关于树莓派zero的系统安装配置部署(版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。)
对于树莓派zero 建议安装lite版系统,我尝试安装了桌面版系统,对于512M的内存来说,运行还是有明显卡顿的。
安装tensorflow库的流程
(我这里不推荐使用线上安装的方式,我用了断断续续用了1天的时间使用线上安装的方法来安装tensorflow库,先是多个国内源无法找到合适的版本,在是用1个多小时用外网下载70M的库,最后还是报错)
-
下载离线tensorflow库
- 对于主流的树莓派2、3、4应该下载对应的 **linux_armv7.whl版本
- 而树莓派1和0应该下载对应的 **linux_armv6.whl版本
官方的下载地址:piwheels下载地址(比较全,但速度有些慢,大部分安装包还是比较小的,还算能接受)
如果想下载其他包,把网址https://www.piwheels.org/simple/tensorflow/
改成https://www.piwheels.org/simple/ + 想要找的包 即可。 -
通过VNC软件把下载好的whl文件传到树莓派上(当然,也可以通过其他你熟练的方式)
附上连接:VNC远程连接树莓派(版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声。) -
更新你的pip:利用命令
$ python -m pip install --upgrade pip
对于树莓派zero来安装whl文件,我个人的多次尝试 :
py3-none-any.whl
abi3-linux_armv6l.whl
两类文件可以顺利pip安装
其他的类似*none-linux_armv6l.whl文件会出现报错,虽然pip显示这类文件是supported的。
所以:
找到你刚刚下载的tensorflow安装包(例如tensorflow-1.9.0-cp35-none-linux_armv6l.whl)
把他改名为:tensorflow-1.9.0-cp35-abi3-linux_armv6l.whl
这个是我自己研究的方法,我也搜索了有关abi3的相关资料,网上都没有太多的说明(苦笑)。 -
接下来就安装tensorflow库吧:
例如tensorflow-1.9.0-cp35-none-linux_armv6l.whl,使用cd命令进入对应的文件夹,再利用命令$ pip3 install tensorflow-1.9.0-cp35-abi3-linux_armv6l.whl
-
接下来根据命令行提示,手动安装各种需要的库,这些大部分可以采用线上安装的方式,个别大些的库,tar.gz文件大于5M的时候建议采用离线安装的方式安装(附上官方的下载地址:[piwheels下载地址],https://www.piwheels.org/simple/ + 想要找的包),同样的利用安装pip3 install whl文件的方法安装即可。
这里推荐这个博主的文章:树莓派搭建tensorflow环境(版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。)
tips:(由于直接利用pip3 install *.whl 命令会消耗很多的build wheel for pkg 的时间,在安装大安装包时耗时过长可能会使树莓派zero卡死,所有才采用上述的方法。) -
所有前提库都安装完成后 使用命令
$ pip3 install tensorflow-1.9.0-cp35-abi3-linux_armv6l.whl
正式安装tensorflow,你会发现安装的非常快。
赶紧测试一下tensorflow
建立个简单的CNN网络模型
.
import tensorflow as tf
from tensorflow.python.keras.layers import Dense,MaxPooling2D,Flatten,Conv2D,Dropout
from tensorflow.python.keras.models import Sequential
if 1:model = Sequential()model.add(Conv2D(10,(5,5),activation ="relu" ,input_shape = (256,256,1)))model.add(MaxPooling2D(2,2))model.add(Conv2D(10,(5,5),activation = "relu"))model.add(MaxPooling2D(2,2))model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(256,activation ="relu" ))model.add(Dense(3,activation ="softmax" ))
这是我安装tensorflow过程中遇到的奇葩报错
这个是我利用默认官方网址 直接pip install 的报错。明明系统python只有3.6 他非默认要下3.7版本的tensorflow(苦笑)。
接上图。。。最后提示Memory Error
这个开篇就提到了,奇葩的bug。
这个是好像由于没有按照对于版本下载tensorboard安装包引起的import错误。重新安装后可以用了。
armv6l.whl文件资源甚少,对于一个性能低下,年代久远的树莓派来说,入手后安装各类软件的确艰难,希望大家能在价格、性能、可操作性上综合考虑入手哪种树莓派。