前言
上回我们把 pytorch 的环境安装好了,这篇我们建立一下 tensorflow 和 keras 的开发环境。
不得不说,相对于pytorch来说,tensorflow 对各个系统的支持真的很完善,无论是各种平台还是各个版本都有对应的预编译安装包,官方文档也很详细(但不代表没有坑,详见下文),是工程化不错的选择。
而pytorch代码更pythonic,所以最新的模型和算法很多都由pytorch发布,两者长远来说会是个互相学习,互相追赶良性竞争的状态。对开发者来说,就都应该有所了解。
现在 树莓派上 tensorflow 比较成熟的版本是 1.14.0,最新版本是 2.3.0。主流应用还是 1.x 系列的比较多,但 2.x 集成keras化后明显更好用些,特别是在模型转化方面,也面向未来,所以这里用虚拟环境两者都部署一下。
安装 tensorflow 1.14
1. 建立 tensorflow 1.14 的虚拟环境
python3 -m venv --system-site-packages ~/my_envs/tensorflow
source ~/my_envs/tensorflow/bin/activate
Tip:
带参数 system-site-packages 是为了引用系统已安装的基础包,方便共享一些基础库。可以通过在虚拟环境 lib/python3.7 目录下新建 no-global-site-packages.txt 文件来切换引用状态。
2. 下载 whl 安装包
下载编译版本的 whl 安装包:
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0-buster/tensorflow-1.14.0-cp37-none-linux_armv7l.whl
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.3.0/tensorflow-2.3.0-cp37-none-linux_armv7l.whl
3. 安装 tensorflow 1.14.0
pip install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
# 测试安装
python
>>> import tensorflow as tf
>>> print(tf.reduce_sum(tf.random.normal([1000, 1000])))
>>> tf.__version__
Tip:
这里官网的教程(https://www.tensorflow.org/in...)里推荐用 pip install tensorflow,会遇到 HadoopFileSystem load error: libhdfs.so: cannot open shared object file: No such file or directory 的错误。主要是树莓派里没有安装 Hadoop 文件系统引起的,我们这里暂时还用不到,所以用懒加载的方式就能修复。官方 pip 库里的 1.14.0 版本仍有问题,所以上文推荐用 github 上的开源编译版本。
4. 安装 keras 2.2.5
与 tensorflow 1.14.0 匹配的 keras 是 2.2.5 版本
pip install keras==2.2.5
Tip:
tensorflow 和 keras 有严格的版本对应关系,更多的版本可以参考这个网站的表格。https://docs.floydhub.com/gui...
安装 tensorflow 2.3
1. 建立 tensorflow 2.3.0 的虚拟环境
# 退出虚拟环境
deactivate
python3 -m venv --system-site-packages ~/my_envs/tf2
source ~/my_envs/tf2/bin/activate
2. 安装 tensorflow 2.3.0
pip install tensorflow-2.3.0-cp37-none-linux_armv7l.whl
# 测试安装
python
>>> import tensorflow as tf
>>> print(tf.reduce_sum(tf.random.normal([1000, 1000])))
>>> tf.__version__
3. 安装 keras 2.4.3
pip install keras==2.4.3
安装包下载
本期相关文件资料,可在公众号后台回复:“rpi05”,获取下载链接。
下一篇预告
我们将安装 tensorflow lite,
并做一下图像分类和目标检测任务,
敬请期待...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。