当前位置: 代码迷 >> 综合 >> 树莓派zero w (raspberrypi 0 w)tensorflow库的艰难安装
  详细解决方案

树莓派zero w (raspberrypi 0 w)tensorflow库的艰难安装

热度:28   发布时间:2024-02-05 23:45:50.0

树莓派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文件格式。如何解决这个问题,我会在下面说明。

安装包为cp6-none-linux——armv6l  在wheel的support元组里
最后:对于这两天查阅资料各类资料来安装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的库,最后还是报错)

  1. 下载离线tensorflow库

    • 对于主流的树莓派2、3、4应该下载对应的 **linux_armv7.whl版本
    • 而树莓派1和0应该下载对应的 **linux_armv6.whl版本
      在这里插入图片描述

    官方的下载地址:piwheels下载地址(比较全,但速度有些慢,大部分安装包还是比较小的,还算能接受)
    如果想下载其他包,把网址https://www.piwheels.org/simple/tensorflow/
    改成https://www.piwheels.org/simple/ + 想要找的包 即可。

  2. 通过VNC软件把下载好的whl文件传到树莓派上(当然,也可以通过其他你熟练的方式)
    附上连接:VNC远程连接树莓派(版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声。)

  3. 更新你的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的相关资料,网上都没有太多的说明(苦笑)。

  4. 接下来就安装tensorflow库吧:
    例如tensorflow-1.9.0-cp35-none-linux_armv6l.whl,使用cd命令进入对应的文件夹,再利用命令

    $ pip3 install tensorflow-1.9.0-cp35-abi3-linux_armv6l.whl 
    
  5. 接下来根据命令行提示,手动安装各种需要的库,这些大部分可以采用线上安装的方式,个别大些的库,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卡死,所有才采用上述的方法。)

  6. 所有前提库都安装完成后 使用命令

       $ 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文件资源甚少,对于一个性能低下,年代久远的树莓派来说,入手后安装各类软件的确艰难,希望大家能在价格、性能、可操作性上综合考虑入手哪种树莓派。

  相关解决方案