树莓派4b初体验

目前在利用强化学习来做精密空调内部部件控制,搞来了一块树莓派4b来做嵌入式运算

外观

搞来的这块是8GB版本,附带了壳子和风扇,整体结构大概长这个样子

尝试了一下不安装风扇的运行,确实会很热,风扇安装脚位如下图,也可以参考官网链接

树莓派4b的接口非常丰富,双USB2.0,双USB3.0,双micro-HDMI,千兆网线,type-C充电线。需要注意的是老版的充电线需要原装充电器,否则会出现无法供电或者过热的情况,据说是硬件问题,不过已经修复了,具体可参考

不得不说这个官方红白配色的外壳是真的不错,好看就完事了

官方外壳也预留了TF卡槽,很贴心,唯一的小缺点就是拆开外壳前千万记得把TF卡拔了,不然卡会卡住外壳,大力拆壳估计卡就废了

系统

由于购买的时候商家直接在卡里烧录了系统,这里就不做系统的安装调试了,不过16GB的内存卡确实有点不太够用,毕竟现在iPhone都是64GB打底了。系统安装可以参考

安装好官方系统的界面大概就是这样了,当然还需要一些列初始化操作,可以跳过,也有中文系统,不过有部分还是以英文存在,我觉得已经足够友好了。

我魔改过后的PPO算法需要tensorflow >= 2.0.0,以及适配的tensorflow_probability,这两个版本对应是真的坑,可以查看tensorflow_probability官方github上的release对应版本,下面列一下我用的版本

tensorflow==2.2.0,tensorflow_probability==0.10.0,h5py==2.10.0

本来是打算在树莓派4b上安装tf2.3.0,所对应的tfp是0.11.0,tf可以正常安装,但是安装tfp时会提示setupXX的某一个包报错,所以退回2.2.0,安装正常

安装tensorflow2.2.0的过程参考了教程,首先查看硬件版本

1
uname -a

我的版本是armv7l

然后升级apt-get以及一些基本依赖

1
2
sudo apt-get update
sudo apt-get install python3-pip python3-dev

解决numpy的一个依赖

1
sudo apt install libatlas-base-dev

tensorflow_on_arm上下载对应版本的tensorflow

我这里下载的是tensorflow-2.2.0-cp37-none-linux-armv7l.whl

之后cd到下载目录开始安装

1
sudo pip3 install tensorflow-2.2.0-cp37-none-linux-armv7l.whl

基本没什么安装问题,之后安装tensorflow_probability

1
sudo pip3 install tensorflow_probability==0.10.0

之后调试代码就可以了,当然其他常用的包类似Ubuntu上的下载安装就可以了,例如

1
pip3 install pandas

不过需要注意的是,树莓派4b自带python2.7和python3.7两个版本,命令行中python默认2.7版本,所以安装py3的包的时候都要pip3,调用代码也是一样

1
python3 test.py

运行PPO算法的感觉还不错,比想象的要好很多了,在调用h5模型的时候出现了两次报错,主要是因为h5py的版本问题,如果出现这个包的问题,安装对应版本的就好,我这里安装的是2.10.0

1
sudo pip3 install h5py -i https://pypi.tuna.tsinghua.edu.cn/simple

这里采用了清华源,毕竟110周年,手动致敬salute

PPO测试过程

没有仔细看运行时间,我们要求的运行速度是每分钟输出一次动作,树莓派4b的运行能力基本没问题,5000多条差不多10分钟就搞定了,可以说还是很舒服了,当然也是因为这个模型不大了。

其他

一个鼠标大小的主机能跑算法模型,而且还有很多其他模块可以拓展,日常浏览网页也没有太大问题,真的是非常良心了。

不过使用过程中,确实存在一些硬件上的问题,比如WIFI信号确实一般,经常容易断网,肯定还是要配个网线好一些;蓝牙连接的鼠标运行延迟确实明显;多个网页打开的时候也容易出现崩溃。

全套下来800块,这个价格下的树莓派可玩性还是远远超过它的弱点。有时间自己搞一台来玩玩。