Ubuntu中配置TensorFlow使用环境的方法


Posted in Python onApril 21, 2020

一、TensorFlow简介

TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。

Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究。

TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API)。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码。

二、安装Anaconda

Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

获取Anaconda

在官网下载链接下载Python3.7版本的安装包

Ubuntu中配置TensorFlow使用环境的方法

下载好以后的文件是Anaconda3-2020.02-Linux-x86_64.sh

开始安装

使用终端进入到保存Anaconda文件的目录下,使用下面命令开始安装

bash Anaconda3-2020.02-Linux-x86_64.sh

开始安装后会让咱们检查Anaconda License,若想跳过,则按Q跳过,之后会询问我们是否同意(Do you approve the license terms?),输入yes然后回车继续

接下来会询问咱们要把Anaconda安装到哪个路径,若有指定,输入路径并回车继续,若无指定,将会安装到默认目录家目录,回车继续。

等到下一个提示确定的时候,是问咱们要不要在~/.bashrc文件中加入环境变量,输入yes回车继续,等滚屏结束,咱们的Anaconda就安装完毕了。

三、TensorFlow的两个主要依赖包

Protocol Buffer

首先使用apt-get安装必要组件

$ sudo apt-get install autoconf automake libtool curl make g++ unzip

然后cd到合适的目录使用git clone功能获取安装文件

$ git clone 
$ https://github.com/protocolbuffers/protobuf.git
$ cd protobuf
$ git submodule update --init --recursive
$ ./autogen.sh

开始安装

$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

在安装结束后,使用如下命令,看到版本号则安装成功

$ protoc --version

Bazel

安装准备

在安装Bazel之前,需要安装JDK8,具体安装方法请参考如下链接
jdk8安装方法
然后安装其他的依赖工具包

$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip

获取Bazel

在发布页面获取bazel-0.4.3-jdk7-installer-linux-x86_64.sh
然后通过这个安装包安装Bazel

$ chmod +x bazel-0.4.3-jdk7-installer-linux-x86_64.sh
$ ./bazel-0.4.3-jdk7-installer-linux-x86_64.sh --user

安装完成后继续安装其他TensorFlow需要的依赖工具包

$ sudo apt-get install python3-numpy swig python3-dev python3-wheel

在完成后,在~/.bashrc中添加环境变量

export PATH"$PATH:$HOME/bin"

然后使用$ source ~/.bashrc激活
然后在终端输入bazel出现版本号的话,则安装成功。

四、安装CUDA和cuDNN

如果计算机上有安装NVIDIA的GPU并安装驱动的话,可以使用CUDA和cuDNN进行GPU运算

CUDA

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。

获取并安装CUDA

在官网获取合适版本的CUDA Toolkit安装包

Ubuntu中配置TensorFlow使用环境的方法

使用如下命令,安装cuda

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda

测试CUDA

在安装完毕后要确认安装情况就进入例子目录进行编译

$ cd /usr/local/sample
$ make all

此时有可能编译出错,错误信息为提示找不到nvscibuf.h,就使用gedit工具打开Makefile文件,把第41行改为

FILTER_OUT := 0_Simple/cudaNvSci/Makefile

然后再次make all进行编译,编译成功后后会提示Finished building CUDA samples
这时候进入/usr/local/cuda/extras/demo_suite目录下,找到deviceQuery可执行文件,并执行,将会输出GPU相关信息。
这是博主的GPU信息

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1060 6GB"
 CUDA Driver Version / Runtime Version     10.2 / 10.2
 CUDA Capability Major/Minor version number:  6.1
 Total amount of global memory:         6075 MBytes (6370295808 bytes)
 (10) Multiprocessors, (128) CUDA Cores/MP:   1280 CUDA Cores
 GPU Max Clock rate:              1759 MHz (1.76 GHz)
 Memory Clock rate:               4004 Mhz
 Memory Bus Width:               192-bit
 L2 Cache Size:                 1572864 bytes
 Maximum Texture Dimension Size (x,y,z)     1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
 Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
 Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
 Total amount of constant memory:        65536 bytes
 Total amount of shared memory per block:    49152 bytes
 Total number of registers available per block: 65536
 Warp size:                   32
 Maximum number of threads per multiprocessor: 2048
 Maximum number of threads per block:      1024
 Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
 Max dimension size of a grid size  (x,y,z): (2147483647, 65535, 65535)
 Maximum memory pitch:             2147483647 bytes
 Texture alignment:               512 bytes
 Concurrent copy and kernel execution:     Yes with 2 copy engine(s)
 Run time limit on kernels:           Yes
 Integrated GPU sharing Host Memory:      No
 Support host page-locked memory mapping:    Yes
 Alignment requirement for Surfaces:      Yes
 Device has ECC support:            Disabled
 Device supports Unified Addressing (UVA):   Yes
 Device supports Compute Preemption:      Yes
 Supports Cooperative Kernel Launch:      Yes
 Supports MultiDevice Co-op Kernel Launch:   Yes
 Device PCI Domain ID / Bus ID / location ID:  0 / 1 / 0
 Compute Mode:
   < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.2, NumDevs = 1, Device0 = GeForce GTX 1060 6GB
Result = PASS

此时,CUDA安装完毕。

cuDNN(CUDA安装完成时才可用)

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如加州大学伯克利分校的流行caffe软件。简单的,插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。

获取cuDNN

在官网链接注册完成并验证邮箱后,点击Download cuDNN下载

Ubuntu中配置TensorFlow使用环境的方法

Ubuntu中配置TensorFlow使用环境的方法

记得在同意前面打勾勾~

现在最新版本的是CUDA 10.2,cuDNN 7.6.5.32,得到的文件是cudnn-10.2-linux-x64-v7.6.5.32.tgz

下载完毕后,进入下载目录,使用如下命令进行解压

$ tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

会生成一个名为cuda的文件夹,进入该文件夹

$ cd cuda

然后使用复制操作完成安装

sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include

操作完成后,进入cuDNN的目录更新库文件的软链接

$ cd /usr/local/cuda/lib64
$ sudo chmod +r libcudnn.so.7.6.5
$ sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
$ sudo ln -s libcudnn.so.7.6.5 libcudnn.so
$ sudo ldconfig

若软链接时报错,则把-s改成-sf即可
接下来在~/.bashrc中添加环境变量

export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:usr/local/cuda-10.2/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.2
export PATH=/usr/local/cuda-10.2/bin:$PATH

至此,CUDA与cuDNN安装完成。

五、正式开始安装TensorFlow

在开始安装前,首先安装pip

$ sudo apt-get install python3-pip python3-dev

在完成后输入pip回车会输出相关命令

Usage:
	pip <command> [options]

在pip安装完成后,输入如下命令开始安装最新的TensorFlow。

$ pip install tensorflow

若无GPU,则安装CPU版本TensorFlow

$ pip install tensorflow-cpu

安装完成后,使用Python测试第一个TensorFlow程序

$ python3
>>> import tensorflow as tf
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
b'Hello, TensorFlow!'

有生成上述结果时,TensorFlow安装成功。

至此,TensorFlow使用环境,安装完成。

到此这篇关于Ubuntu中配置TensorFlow使用环境的方法的文章就介绍到这了,更多相关Ubuntu配置TensorFlow内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python备份文件的脚本
Aug 11 Python
python基础教程之常用运算符
Aug 29 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
Python对文件操作知识汇总
May 15 Python
python中执行shell的两种方法总结
Jan 10 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
python socket 聊天室实例代码详解
Nov 14 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
如何在django中运行scrapy框架
Apr 22 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 #Python
如何基于python对接钉钉并获取access_token
Apr 21 #Python
python用TensorFlow做图像识别的实现
Apr 21 #Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 #Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 #Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 #Python
Django实现celery定时任务过程解析
Apr 21 #Python
You might like
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
javascript 打印页面代码
2009/03/24 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
js实现随机点名程序
2020/09/17 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
详解Python IO编程
2020/07/24 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
面向对象设计的原则是什么
2013/02/13 面试题
学校安全教育制度
2014/01/31 职场文书
航空学院求职信
2014/06/11 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
任命书标准格式
2015/03/02 职场文书
2015年环保局工作总结
2015/05/22 职场文书
色戒观后感
2015/06/12 职场文书
校园安全主题班会
2015/08/12 职场文书