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通过floor函数舍弃小数位的方法
Mar 17 Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
一张图带我们入门Python基础教程
Feb 05 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python实现最长公共子序列
May 22 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
用Python写一个简易版弹球游戏
Apr 13 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
javascript中检测变量的类型的代码
2010/12/28 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
如何在django中运行scrapy框架
2020/04/22 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
javascript实现计算器功能详解流程
2021/11/01 Javascript
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏