树莓派4B安装Tensorflow的方法步骤


Posted in Python onJuly 16, 2020

1.写作背景

Tensorflow官方在2018年宣布,正式发布支持树莓派版本的Tensorflow,编者开始直接用:

pip install tensorflow

进行安装,在安装成功后使用import进行验证时:

import tensorflow as tf

出现了如下所示报错:

E tensorflow/core/platform/hadoop/hadoop_file_system.cc:132] HadoopFileSystem load error: libhdfs.so: cannot open shared object file: No such file or directory

在花费了大量时间查询资料后,最终得到的解决,故做一个记录。

2.开始前的系统环境与设备

设备:树莓派4B一枚

系统:Raspberry PI OS 2020-5-27版

3.安装过程

Python 3.x + Tensorflow v1 系列

(1)安装必要的依赖项

$ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev gcc gfortran python-dev libgfortran5 \
             libatlas3-base libatlas-base-dev libopenblas-dev libopenblas-base libblas-dev \
             liblapack-dev cython openmpi-bin libopenmpi-dev libatlas-base-dev python3-dev

(2) 安装相关python包

$ sudo pip install keras_applications==1.0.8 --no-deps
$ sudo pip install keras_preprocessing==1.1.0 --no-deps
$ sudo pip install h5py==2.9.0
$ sudo pip install pybind11
$ pip install -U --user six wheel mock

(3)如果之前安装过tensorflow,卸载

$ sudo pip3 uninstall tensorflow

(4)下载Tensorflow

传送门1tensorflow-on-arm

传送门2Tensorflow-bin

树莓派4B安装Tensorflow的方法步骤

选择你要的版本,我选择传送门2的tensorflow-1.15.0-cp37-cp37m-linux_armv7l.whl

$ wget https://github.com/PINTO0309/Tensorflow-bin/raw/master/tensorflow-1.15.0-cp37-cp37m-linux_armv7l.whl
$ sudo pip install tensorflow-1.15.0-cp37-cp37m-linux_armv7l.whl

(4)验证安装是否成功

安装成功后重启终端,运行Python后输入

>>import tensorflow as tf
>>tf.__version__

应该没有报错且正常输出版本信息。

Python 3.x + Tensorflow v2 系列

Tensorflow2系列的安装过程与1系列类似,不再赘述,直接上过程:

$ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev gcc gfortran python-dev libgfortran5 \
             libatlas3-base libatlas-base-dev libopenblas-dev libopenblas-base libblas-dev \
             liblapack-dev cython libatlas-base-dev openmpi-bin libopenmpi-dev python3-dev
$ sudo pip3 install keras_applications==1.0.8 --no-deps
$ sudo pip3 install keras_preprocessing==1.1.0 --no-deps
$ sudo pip3 install h5py==2.9.0
$ sudo pip3 install pybind11
$ pip3 install -U --user six wheel mock
$ wget "https://raw.githubusercontent.com/PINTO0309/Tensorflow-bin/master/tensorflow-2.2.0-cp37-cp37m-linux_armv7l_download.sh"
$ ./tensorflow-2.2.0-cp37-cp37m-linux_armv7l_download.sh
$ sudo pip3 uninstall tensorflow
$ sudo -H pip3 install tensorflow-2.2.0-cp37-cp37m-linux_armv7l.whl

4.参考资料

Error installing Tensorflow (cannot find libhdfs.so)

Install Tensorflow 2 on a Raspberry Pi 4

Tensorflow-bin

到此这篇关于树莓派4B安装Tensorflow的方法步骤的文章就介绍到这了,更多相关树莓派4B安装Tensorflow内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python编写一个模仿CPU工作的程序
Apr 16 Python
浅谈python对象数据的读写权限
Sep 12 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
让代码变得更易维护的7个Python库
Oct 09 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
Python sorted排序方法如何实现
Mar 31 Python
keras之权重初始化方式
May 21 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Selenium 配置启动项参数的方法
Dec 04 Python
深入了解Python enumerate和zip
Jul 16 #Python
详细分析Python collections工具库
Jul 16 #Python
带你学习Python如何实现回归树模型
Jul 16 #Python
MATLAB数学建模之画图汇总
Jul 16 #Python
浅析Python迭代器的高级用法
Jul 16 #Python
python 使用递归的方式实现语义图片分割功能
Jul 16 #Python
Django serializer优化类视图的实现示例
Jul 16 #Python
You might like
由php的call_user_func传reference引发的思考
2010/07/23 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
javascript数组详解
2014/10/22 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
python验证码识别的实例详解
2016/09/09 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
动态密码技术
2012/10/18 面试题
高中生期末评语大全
2014/01/28 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python