Linux系统下安装TensorFlow2.3

Linux系统下安装TensorFlow2.3

系统概述

之前网上的大部分论坛都是介绍如何在PC端安装TensorFlow(后面简称为TF),而在最近的实际工作中,有需求将TF移植到我们目前正在使用的开发板上(我所使用的是Firefly的RK3288)。
好在网上有部分关于树莓派的TF移植,但是对于刚开始的接触此类安装的我有差异就是不同,现在再回头看一下安装过程实际上大同小异,其间也走了不少弯路,前后耗时大概2周,整个过程经历了如下几个阶段:
1.熟悉Linux环境的操作;
2.寻找TF安装包(但是不知道,所以使用的是TF1版本);
3.不断地卸载、安装Python的不同版本;
4.不断地处理pip的各种报错;
5.尝试升级GCC;
6.尝试升级RK3288的系统镜像;
7.尝试Python的多版本管理;
8.尝试安装TF2.3版本;
9.部署运行Demo;

经过以上9个阶段总算完成了这一安装工作,现在回头来看,整个安装过程仅需要关注如下几个方面:
**1.Linux系统;
2.TensorFlow2.3.0;
3.Python;**

接下来对这三个基本要素进行相关介绍。

Linux

网上对于Linux的学习资料也比较多,这里就不对该系统进行介绍,仅介绍本次相关知识点,在本次的安装使用的是Ubuntu,其它Linux系统也类似,主要包括如下两部分:
1.Linux系统的框架;
2.GCC的版本;

Linux系统的框架

对于Linux系统下的TF安装包一般都是whl文件,其命名一般如:
tensorflow-2.3.0-cp35-none-linux_armv7l.whl
其中最后最后面的armv7l就是该安装包要求的Linux框架,因此我们需要确认自己目前使用的系统,一般可通过如下指令进行获取(使用arch确认即可):
1.arch;
2.cat /proc/version;
3.uname -a;
4.lsb_release -a;
5.cat /etc/issue;

我们只需要知道我们的板子架构即可,即是如armv7l,或是aarch64.

GCC的版本

一般我们都是直接在板子上烧录Ubuntu的镜像系统,其中都会带有gcc,我们可以通过gcc -v来获取当前系统的gcc的版本,之所以要确认版本是是因为TF对编译工具链的版本是有要求的,如我安装的TF2.3.0需要gcc-7.3.1以上的版本。
实际上其依赖的是libstdc++.so这个,所以我们只需要通过如下指令确认目前系统中的so版本,只要能够满足TF的要求即可。
strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 |grep GLIBCXX

TensorFlow2.3

对于TF我们至少需要知道如下几个点:
1.TensorFlow是一个开放源代码软件库,用于进行高性能数值计算,可以理解成智能算法的实现支持库;
2.官方通过python实现了TF的Runtime(运行环境,只有将该环境安装到对应平台才能运行相关库);
3.TF2和之前的TF差异很大,因此建议使用TF2,更能更全;
4.TF2中已经包含了TensorFlow-Lite;

最后我们来解读一下其安装包,还以刚刚的tensorflow-2.3.0-cp35-none-linux_armv7l为例:
1.tensorflow-2.3.0:2.3.0是TF的版本号;
2.cp35:表示需要Python3.5.n的支持,实际上就是需要该版本对应的pip;
3.none:表示不局限;
4.linux_armv7l:表示系统及框架类型(32位类型);

GitHub上有该安装包。

Python

由于我们安装的TF Runtime是基于Python的包,因此我们需要保证环境中已经安装了合适版本的Python,一般我们安装的Linux系统中会带有3.6版本的python,但是就目前所知,TF2.3版本的安装包仅有cp35和cp37这两个版本的,所以我们在安装前还有安装3.5或者3.7版本的Python。
根据本次安装过程的感悟,不建议将之前的Python卸载然后再安装新的版本,建议使用pyenv对多版本的Python进行管理使用,这样可省很多时间(卸载顺序错误会导致各种意想不到的问题),并且pyenv的使用真的太方便了。

安装过程

根据前面的介绍,我们接下来详细介绍安装过程。

准备Linux系统

我们首先要保证板子上的Linux系统能够满足所使用的安装包的要求,这里建议直接使用Ubuntu18.04版本,里面的gcc版本是能够满足要求的。
如果你使用的是RK3288,那么一定要注意:如果通过recover方式升级固件之后系统不启动那么就要确认自己使用的RKDevTool_Release 的版本是否足够,我使用v2.4版本的多次升级都成功但是板子不运行,最终从RK3568中的工具中下载了v2.81版本的RKDevTool进行镜像下载,最终成功运行。

心得:Firefly RK3288官网的镜像文件都是可以用的(但是部分版本的镜像运行过程还是存在异常,不知道是否是板子的问题),如果不能使用那就是下载工具版本不对。

准备pyenv环境

安装完镜像之后,首先通过python3 -V确认当前的版本号,如果已经是3.5或者3.7那么恭喜你就可以跳过该阶段了,但是一般镜像中也仅安装了python,却没有安装对应的pip,因此还是强烈建议使用pyenv,因为它会自动帮助我们安装对应版本的pip。

关于pyenv的安装网上有很对,我是参考如下几个博客:
https://www.cnblogs.com/ningvsban/p/4384995.html

心得:TF是通过pip执行的安装,因此一定要正确安装pip。

下载自己平台对应的TessorFlow2.3**.whl文件

准备好python环境之后,我们就要选择下载对应的TF安装包了,该安装包我们可以直接用电脑进行下载,我是从如下地址进行下载的:
https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.3.0/tensorflow-2.3.0-cp35-none-linux_armv7l.whl

注:可根据需要手动修改以上网址的v2.3.0和tensorflow-2.3.0-cp35-none-linux_armv7l部分来下载自己需要的安装包。

安装前的准备工作

对于刚安装的Linux系统一般都会缺少一些库,并且有些库并不是最新的,因此还需要执行如下这一系列指令:

sudo apt-get update
sudo apt-get upgrade

pip3 install --upgrade --force pip

pip3 install --upgrade pip setuptools wheel
sudo apt install gfortran

安装之前一定要通过python -V确认版本号,一定要确定是自己想要的版本。

开始安装

建议通过如下指令进行安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-2.3.0-cp35-none-linux_armv7l.whl

可以看出pip使用了-i形参,通过该形参可以切换镜像源,如果直接使用国外镜像源那么会导致安装过程中出现失败,如下给出了一些常用的国内镜像源地址。
阿里云 http://mirrors.aliyun.com/pypi/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学 http://pypi.hustunique.com/

整个安装过程大概要持续1~2小时左右,结束后如果没有报错,到此完成了所有的安装工作。

完成安装并验证

安装完成之后,按照如下过程执行:

python
import tensorflow as tf

如果以上没有报错那么就说明安装成功。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值