《Ubuntu16.04下配置GPU环境》

为了让后来的汉子不踩坑,本人此处打的是情怀牌,尽量会写详细点~

有借鉴文章Ubuntu下安装TensorFlow的最简单方法(无需手动安装CUDA和cuDNN),但还是有几处需要注意的地方,以下奉上我的一波操作~

本文适用于 Ubuntu 16.04 ;至于18.04版本,我还没有尝试过,尝试过会写在这里~

本文包含内容:

如何安装显卡驱动

如何安装 Anaconda

如何安装TensorFlow(无需手动安装 CUDA 和 cuDNN )

如何远程运行Jupyter Notebook(可选,但超有用)

本文不适用范围

如果你租用云服务器,直接使用服务商提供的深度学习专用镜像即可。

如果你使用的是 RTX 系列显卡,你得基于CUDA 10.0自行编译TensorFlow。因为截至本文发布时(18年11月),TensorFlow都没有官方支持 CUDA 10.0,而 RTX 显卡使用 CUDA 9.x 会偶现迷之报错。(我踩了很多坑才编译成功,会在近期写篇文章。)

0、先更新一下系统:

sudo apt-get update

sudo apt-get upgrade

(备注:第二个命令运行时间可能会有点久,请平躺做好心理准备~)

1、打开终端,添加开源显驱仓库:

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

2、安装一些依赖

sudo apt-get install dkms synaptic build-essential

打开系统的 Software&Update工具,选择 Additional Drivers,此时你会看到可以下载的显卡驱动。然后根据自己的显卡,在官网找到对应的驱动程序版本,看下 Additional Drivers里有没有对应的版本,如果有,安装之~,如果没有,请自行探索,哈哈~

驱动安装完成后,重启计算机。

3、检查驱动是否安装成功,在命令行输入: 

nvidia-smi

看到显卡当前的状态,例如温度、显存占用情况等,说明驱动安装成功了。顺便说个小技巧,如果你在跑模型时想监控显卡的温度,也可以用这个命令:

watch -n 1 nvidia-smi          # 1表示每1秒刷新一次

4、不要自行安装CUDA和cuDNN

除非你打算安装CUDA 10.0并自行编译 TensorFlow 或 PyTorch ,否则不要自行安装 CUDA 和 cuDNN!因为版本兼容问题是个大坑,而网上很多教程却避而不谈。其实最简单稳妥的办法就是通过 Anaconda 安装 TensorFlow ,让它来安装正确的依赖 —— 例如 CUDA 和 cuDNN。

5、安装 Anaconda

Anaconda 是数据科学家的必备神器,而我们使用它安装 TensorFlow 的原因是:

一、自动安装正确版本的依赖;

二、环境管理 —— PyTorch 和 TensorFlow 依赖的CUDA版本不一致也没关系;

三、首先下载Anaconda,这里我附上我网盘里的资源(链接: https://pan.baidu.com/s/1JUV6Wpx1Zzga4Iyi0RBp9g 提取码: ah9m ),没错,我把这个安装包转到了云端,用这个软件(http://pandownload.com/)下载会比较快哈~

(备注:我是在windows上下载的,然后用U盘放在了Ubuntu的download文件夹下)

四、安装Anaconda

bash ~/Downloads/Anaconda3-5.3.0-Linux-x86_64.sh   #如果你下载的是3.7版

6、安装好Anaconda之后,我们先为TensorFlow创建一个新的环境:

# 如果你安装的是 Python 3.7 版的Anaconda,则需要声明新创建的环境使用 Python 3.6:

conda create --name tf_gpu_env python=3.6 anaconda tensorflow-gpu

(备注1:此处小女子我碰到了一个错误:conda:未找到命令;此处的解决方法为: export PATH=~/anaconda3/bin:$PATH)

(备注2:由于执行了上面这个命令之后,附加包下载让我等了足足6个小时,现已解决这个问题,各位汉子看好,在命令行运行:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

conda create --name tf_gpu_env python=3.6 anaconda tensorflow-gpu

这样用不了多久,就可以快乐的进行下一步啦~)

Anaconda会自动安装TensorFlow所需依赖,包含正确版本的CUDA和cuDNN。安装完成后,我们启动这个环境:

source activate tf_gpu_env

现在可以愉快的跑模型啦~

别忘了每次开机后都要手动启动这个环境啊,如果你想退出当前环境,只需:

source deactivate

7、如果你在 Jupyter Notebook 引入TensorFlow 时引起报错 `No module named 'tensorflow' ` :

我们来逐步排查原因,首先关闭 Jupyter Notebook,直接在 tf_gpu_env 的环境中进行以下操作。

7.1. 排除 Jupyter Notebook 的嫌疑

启动 python

python

然后

import tensorflow

如果没有问题,那么说明是 Jupyter Notebook 的问题。这通常是因为 Jupyter Notebook 没有读取到正确的环境路径。退出 python 后,在当前环境下重装 Jupyter Notebook 就好了。

conda install jupyter notebook

7.2. 如果在 python 命令行中就无法引入 TensorFlow

这可能是因为你曾经用 pip 安装过 TensorFlow 导致的,解决方法是在当前环境中强行重装 TensorFlow:

pip install --ignore-installed tensorflow-gpu

8. 远程运行 Jupyter Notebook(可选,但超有用)

最后,分享一个很酷的小技巧。你已经搭建好一台高性能的深度学习PC了,但如果你已经习惯了自己的笔记本电脑,希望继续在上面做开发怎么办?

你可以将这台PC看作远端服务器,然后把笔记本的8888端口(Jupyter Notebook默认端口)转发到服务器的8888端口。这样一来,你就能直接在笔记本上访问 http://localhost:8888 使用运行在服务器上的 Jupyter Notebook。具体方法是:

先用笔记本SSH上服务器:

$笔记本: ssh @ # 这里填上服务器的内网IP

接着在服务器启动 Jupyter Notebook:

$服务器: source activate tf_gpu_env # 别忘了启动Anaconda的环境$服务器: jupyter notebook

然后在笔记本的终端上新开一个tab,设置端口转发:

$笔记本: ssh -NL 8888:localhost:8888 @

现在打开笔记本的浏览器,访问 http://localhost:8888 即可访问运行在服务器上的 Jupyter Notebook 了!

你还可以拔掉PC上的视频线,Ubuntu 将不会启动图形化界面,这能节省下大约8%~10%的显存,从而把显存全用在跑模型上。

以上方法要求笔记本和服务器在同一个局域网内,如果你想真·远程运行 Jupyter Notebook,还需要不少工作,针对这个我暂时还没去作死尝试,等我走一遍之后再分享给大家。

备注:第二天我又碰到了上面的一个问题:找不到conda命令!

解决办法:

打开bashrc文件(该文件为隐藏文件)

输入如下命令

$ vim ~/.bashrc

3.在该文件最后添加

export PATH=~/anaconda3/bin:$PATH

4.保存bashrc文件

5.运行如下命令,更新该文件

输入如下命令

$ source ~/.bashrc

6.测试是否安装成功

输入如下命令

$ conda --v

如果出现conda版本则成功。

Happy Hacking!

到此,我的操作完毕,总的说来还算比较开心,如果各位还出现其他问题,不妨到本文开头看看我借鉴的文章有没有写哈~,如果没有写,欢迎来留言~

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

推荐阅读更多精彩内容