2019-02-15

在深度学习主机上搭建TensorFlow环境。系统是Ubuntu18.04,Python环境是Python3.6,显卡是GTX1080ti,配置cuda9.0+ cudnn7.3.1+tensorflow1.11GPU。第一次写博客,望大家多多支持!!!

0、预备工作

1. 验证电脑是否支持CUDA的GPU

2. 验证自己的Linux版本是否支持 CUDA

3. 验证是否安装gcc

4. 验证是否安装kernel header 和package development

1、安装显卡驱动

1.1、卸载旧版显卡驱动

首先卸载NVIDIA驱动,如果是通过附加驱动安装显卡的,则输入如下

sudo apt-get remove --purge nvidia-*

如果是安装的是官万下载的驱动,则重新运行run文件来卸载

sudoshNVIDIA-Linux-x86_64-410.73.run--uninstall

此时,显卡驱动现实如下:


1.2、下载显卡驱动

去Nvidia官网,下载相应的驱动程序


点击搜索,下载驱动

1.3、禁用自带显卡驱动

打开黑名单列表

sudo gedit /etc/modprobe.d/blacklist.conf

在列表最后加入

blacklist vga16fb

blacklist nouveau

blacklist rivafb

blacklist rivatv

blacklist nvidiafb

options nouveau modeset=0

保存后输入 

sudo update-initramfs -u

更新更改

1.4、安装新的显卡驱动

重启电脑,输入ctrl+alt+f6进入终端,停止X-windows服务,输入

sudo service lightdm stop

进入nvidia安装包目录,输入

sudo chmod a+x NVIDIA-Linux-x86_64-410.73.run

sudo sh NVIDIA-Linux-x86_64-410.73.run

按照提示安装,一路默认直到询问是否使用nv的xconfig文件,选择"yes",安装成功后,执行

sudo service lightdm restart

重启电脑,查看显卡驱动


2、安装Cuda9.0

2.1、下载cuda

目前只支持Cuda9.0,前往cuda官网,找到对应版本下载


2.2、降低gcc、g++版本

若现在直接安装cuda,则会提示


其原因是Ubuntu18.04的编译器版本过高,因此只需要安装较低版本的gcc、g++即可

sudo apt install gcc-4.8 g++-4.8

sudo ln -s /usr/bin/gcc-4.8 /usr/local/bin/gcc

sudo ln -s /usr/bin/g++-4.8 /usr/local/bin/g++

2.3、安装Cuda

接下来进入到下载目录,执行下面的安装命令:

sudo sh cuda_9.0.176_384.81_linux.run

看到一大段协议后一直回车,接下来会有一大堆问题

Do you accept the previously read EULA?(accept/deny/quit) 选择accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?

因为已经安装过显卡驱动了,所以选择no

Install the CUDA 9.0 Toolkit? 选择yes

Enter Toolkit Location 直接回车默认 [ default is /usr/local/cuda-9.0 ]: 直接回车默认即可

Do you want to install a symbolic link at /usr/local/cuda?  选择yes

Install the CUDA 9.0 Samples? 问你是否安装样例,安装了吧,也占不了多少空间

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ... 等待安装完成即可

安装完成后,显示以下内容


提示若想要删除cuda工具,直接运行pl脚本即可,进入目录

sudo perl uninstall_cuda_9.2.pl

最后一步,将cuda添加到环境变量,在终端输入

sudo gedit ~/.bashrc

然后加入

export PATH=/usr/local/cuda/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

完成后,重启终端输入nvcc -V,显示如下则表示cuda工具安装成功


3、安装cuDNN

进入cuDNN官网,下载对应版本


解压压缩包,将文件复制到cuda-9.2的安装目录,并修改权限:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4、安装Anaconda3

anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。可以帮助python开发者省去很多安装科学包的工作。去官网下载对应版本


进入下载目录,输入以下指令下载

sudo bash Anaconda3-5.3.0-Linux-x86_64.sh

一直按回车或yes完成安装,完成安装

接下来配置环境变量,在终端输入

sudo gedit ~/.bashrc

然后加入

export PATH=~/anaconda3/bin:$PATH

更新配置,source  ~/.bashrc,输入python,查看是否安装成功


5、安装TensorFlow

Anaconda能够创建不同环境以满足不同需求,我们创建一个tensorflow的环境

conda create -n tensorflow pip python=3.6

接着激活conda环境

source activate tensorflow

最后为该环境安装tensorflow-gpu

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

6、测试

新建python文件,运行测试程序

import tensorflow as tf

with tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=False)) as sess:

    a = tf.constant(1)

    b = tf.constant(3)

    c = a + b

    print('结果是:%d\n 值为:%d' % (sess.run(c), sess.run(c)))

若输出为

2018-12-12 15:43:39.871883: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:

name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.6575

pciBusID: 0000:02:00.0

totalMemory: 10.91GiB freeMemory: 10.00GiB

2018-12-12 15:43:39.871896: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0

2018-12-12 15:43:40.042840: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:

2018-12-12 15:43:40.042868: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0

2018-12-12 15:43:40.042873: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:  N

2018-12-12 15:43:40.043042: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 9665 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:02:00.0, compute capability: 6.1)

结果是:4

值为:4

则安装成功,其中

allow_soft_placement=True 表示使用不能使用显卡时使用cpu

log_device_placement=False 不打印日志,不然会刷屏

7、参考文献

TensorFlow安装指南

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容