虽然树莓派的速度不如PC,但是它功耗小、价格便宜,很多同学都用来学习机器学习的相关课程,而且tensorflow官方是支持树莓派,我们可以直接在树莓派上进行学习。
网上的现在树莓派已经发布4B,新版本的rasbian系统全面采用了python3.7,但是网上大多数教程还是基于树莓派3的,使用python3.5进行安装。 我使用的是树莓派4B和2019-06-20-raspbian-buster系统版本, 尝试安装3.5和3.7两个Python环境下的tensorflow。
【tensorflow使用示例】
这是在树莓派中安装好tensorflow并使用训练好的VGG19模型进行风格转换的一个程序,并生成损失值得3D图和曲线图。
一、python3.7 + tensorflow
这种方式不用更改python版本,可以直接安装,出的问题比较少,因为更改为python3.5版本进行安装时往往会出现其他依赖的版本高低问题,没有特殊要求推荐这种安装方式。
1.更改下载源为国内源。如果有没更改的先移步这里更改下,提高下载速度。换源方法
我是直接在windows中下载tensorflow安装包,然后放到树莓派中,可以通过GitHub下载,也可以通过piwheels下载官方安装包,可以比较下, 基本上没什么差别,不过piwheels中的安装包更全一些,对于1.13.1版本,Github中没有python3.7的版本,但是piwheels中有,这就比较有意思了。
(1)Github下载地址
(2)piwheels下载地址
下载的时候要注意下载对应的版本:
(1)中间的CPXX,代表python版本,选错了无法安装。例如python3.5,应该选择CP35,pytho2.7就选择CP27
(2)如果是pi1或者pizero(包括zerow),选择结尾是armv6l的;如果是树莓派2/3/4就选择结尾是armv7l.whl的。(可使用命令 uname -a 查看系统信息,如下图)
2.安装tensorflow
(1)首先安装tensorflow需要的一些依赖和工具
sudo apt-get update
# For Python 2.X
sudo apt-get install python-pip python-dev
# For Python 3.X
sudo apt-get install python3-pip python3-dev
(2)解决numpy的一个依赖
sudo apt install libatlas-base-dev
如果在安装过程中如果被打断,可以看一下具体是缺少了哪个包,然后手动安装上。
(3)若之前安装过其他tensorflow版本,需要先卸载
sudo pip3 uninstall tensorflow
(4)进入tensorflow安装包路径下,进行安装
#后面install的文件名按照自己下载的文件名来更改
# For Python 2.X
sudo pip install tensorflow-1.13.1-cp27-none-linux_armv7l.whl
# For Python 3.X
sudo pip3 install tensorflow-1.13.1-cp37-none-linux_armv7l.whl
如果顺利的话,等一会儿就能看到安装成功的提示了,如下图:
3.测试tensorflow
#进入对应的python
python3
#在python3界面中输入以下代码
import tensorflow as tf
hello = tf.constant('Hello!')
sess = tf.Session()
print(sess.run(hello))
可以看到,能够成功调用tensorflow打印出“Hello!”,不过在python调用tensorflow的时候出现了一些WARNING,意思是有些方法已经被弃用了,不过没有提示错误的话也不用管,如果出现ERROR的话,那就说明该程序和当前的tensorflow版本不兼容,尤其是最新的2.0版本,有些方法已经改动了,查一下文档改下函数就行。
二、python3.5 + tensorflow
如果需要python3.5的安装环境,也可以实现。
【注意】最好不要卸载系统系统自带的python3.7,因为有好多依赖会在卸载的时候一起卸载,到时候可能连系统也进不去了,在Ubuntu系统中是这样的,树莓派中我还没有试,不过python2.7应该可以卸载,现在基本不学python2了。
pip是python包的管理工具,通过它你可以很好的下载python包,注意python解释器版本不同对应的pip版本不同,如果你使用的是系统默认的python2.7的话,就要用pip安装。python3用pip3。
1.安装python3.5(会安装在/usr/local/lib路径下),这里直接进行安装,也可编译安装python,会麻烦一些。
sudo apt-get install python3.5
安装pip3:
sudo apt-get install python3-pip
如果版本过低,可以考虑升级pip3
pip3 install --upgrade pip
2.更换python3的链接
(1)删除原有的python3 链接:
sudo rm /usr/bin/python3
(2)建立指向Python3.5的链接
sudo ln -s /usr/bin/python3.5 /usr/bin/python3
(3)查看当前版本
python3 -V
也可以将python链接为python3.5
3.安装 tensorflow步骤和上面的相同
【补充】
1.完全卸载python,系统自带的python建议不要卸载,因为系统内的应用需要依赖该版本的python,可以卸载掉你多安装的python版本。
(1)卸载python3.5
sudo apt-get remove python3.5
(2)卸载python3.5及其依赖
sudo apt-get remove --auto-remove python3.5
(3)清除python3.5
sudo apt-get purge python3.5
or
sudo apt-get purge --auto-remove python3.5
1.有的朋友在安装的时候会遇到下载速度很慢最后停止报错,如下图:
下载速度十几k,这种情况直接用下载软件或者浏览器下载,例如上图,直接浏览器打开https://www.piwheels.org/simple/grpcio/,然后下载对应的安装包,或者选择你要安装的包,如图:
下载好之后传到树莓派中,直接安装即可解决
再重新运行命令安装tensorflow,即可成功安装,如下图
为了复现问题,我重新烧了遍系统,希望能帮到你们,谢谢。