Anaconda3.5 + pycharm2017.03 + ubuntu16.04 LTS +tensorflow + CUDA 9.0 + CUDNN7.5

从1.10号开始装ubuntu开始,1.11-1.14这四天每天下班之后搞到晚上一两点。中间经历了一次系统的崩溃,现在总算是整出了点经验。目前对这些东西进行一次总结。

1.网上资料很多,千万别看排名靠前的

这个血的教训真的要牢记,网上很多排名靠前的,感觉都是刷出来的。其实很多时候真的不能解决你的本质问题。

之前上本科,我的毕设指导老师就说过,配置环境这个工作是很复杂的,甚至可以占到项目开发一半的时间。在毕设的配置环境中,我做的工作就很不好,基本上的配置工作都是由师兄带着完成的。

之后也经历过很多配置工作,但是这次配置环境对我来说无疑在复杂性上更上了一个难度。

这和我的性格也是有关的。因为我自己本身就喜欢用最新的东西。我想用python3,不想用python2。 我要用pycharm,不想用jupyter等其他IDE。我想用TensorFlow最新版本,不想用老版本。这一系列的求新,导致在网上的教程很少。很多坑真的是要自己去填。

2.要搞清楚环境之间的依赖关系和依赖顺序

毫无疑问,环境之间是有依赖关系的。由于各个软件、环境包的持续更新,很有可能旧的东西不能用了。也有可能导致太新的东西无法使用(例如目前CUDA最新版本是9.1,是2017.12月份才发行的。而tensorflow显然没有支持到最新版本)

第二个是要清楚环境之间的依赖顺序。如果没有搞清楚依赖顺序,你在安装的时候,可能是一个紧耦合模型去安装。导致安装环境时,压根理不清楚哪里出错,是在哪里搞出了问题。

现在我来说一下我所能体会到的这几个安装的依赖顺序和依赖关系:

(Ubuntu > CUDA > CUDnn | Anaconda > python 3.6 )  > tensorflow | pycharm

" | " 代表并列关系, “ > ”代表依赖顺序,左侧的优先级更高一些。

    可以看出,安装显卡cuda 本质上和anaconda之间是没有任何联系的。安装上述所有环境和 pycharm是没有任何关系的。所以,这就很方便的对你每一步安装的环境进行单元测试,当你能保证每一步测试都通过之后,你再去进行下一步的安装工作。这个会极大的简化你的工作。即便当你某一步出了错,也不用心慌。只需要把你所出现问题的地方再次进行调试就可以了。

    tips:说一下依赖的包的关系:tensorflow 目前最新版本是1.5,这个版本能使用CUDA9.0而不能使用CUDA9.1。应该是也不能使用低版本的了,因为我看了一下,他用的库的动态链接库的版本是不对的!!!!!!!千万注意。也就是说,当你想安装最新版本的时候,一定要选对他所能支持的CUDA。

3. 安装步骤

3.1 cuda 9.0 和cudnn 7.5安装

这个没话说,按照网上的安装操作方法就可以。cuda安装完之后,他会在/usr/loca/ 下面生成两个文件夹:cuda和cuda-9.0 需要注意的是,最后要

安装cudnn没什么说的,按照网上的来,该拷贝拷贝。记得往cuda-9.0文件夹里面拷贝。当然,你要不放心,两个文件夹都拷贝,没毛病!!!!

~sudo gedit .bashrc

将 /usr/local/cuda-9.0/ .... 这个东西添加到path里面。我就是这么偏执, 9.0就是9.0。

最后 ~/.bashrc 运行一下,将会把这个环境变量添加到全局中。

网上有往 /etc/profile 里面添加path的,应该也可以。有想尝试的小伙伴可以去试试。

这些工作做完之后,你需要讲动态链接库激活一下。我在这里被坑了很久。使用 ~/sudo ldconfig这个命令之后,很有可能你会看到有一个错误,有个 链接一直报错。我之前没在意,结果tensorflow完全跑不动。

从我的理解来看,这个动态链接,其实真的就是简单的将指定的文件链接过去,加入出现了链接不上,说明他压根没找到这个文件。

这怎么可能!英伟达公司怎么可能把这个问题也没解决。但是,你去仔细的用 sudo ldconfig |grep -v命令去看,你可以复制到文档里仔细的检查。直接搜索一下报错的链接库。你会惊奇的发现,确实,有一个文件报错了,没有链接成功。

你去他提示的路径里去仔细找,发现还真的没有这个文件。那么这个文件到底在哪呢? 很可笑的是:有一个叫 .....so.7.0.5这个文件他就是,但是,动态链接并不认这个文件,他只认, so.7 。 WTF。好了,你现在终于知道了,为什么网上的教程会说让你用 sudo ld -n .....这个命令了吗? 意思是让你把这个so.7.0.5当做 so.7去使用。

遇到其他的动态链接问题也是同样道理。

关于如何检查自己的CUDA是否装对

有个简单的办法,就是进入cuda-9.0/sample里面,你去make一下,之后对sample中的例子实际的用 ./这个命令运行一下试试,如果能运行成功,则说明安装的没问题。

至此,你再也无需考虑cuda的问题了!!!!!!!!!!

3.2 安装Anaconda

这个安装没问题,很好安装,按照网上的教程来。并创建出你的第一个虚拟环境:tensorflow。

接下来,你将遇到另一个大坑。我在这个坑里真的掉了很久。众所周知,conda是一个依赖包管理软件。他会自动的给你安装你所要配置的环境。可是,这个依赖包管理环境,其实是conda在后台直接定义好的模板。其实这样是可以保证你在他的环境之下不出错,但是他并不能保证你在你自己附加了自己的CUDA之后不出错。

注意!!!在我这个时间点,当你用conda安装tensorflow的时候,他给你安装的版本是1.4.1,然后,他会依赖CUDA8.0和CUDNN7.0。所以,当你用conda去做tensorflow的时候,其实你是怎么也安装不正确的。

当然,你用pip进行远程安装也一样,也会蹦出安装的是1.4.1这个版本的tensorflow。当然,这里还有个问题是,在你进入激活环境(tensorflow)进行pip安装的时候,一定不要用sudo。这会默认使用系统自带的python2去安装包,安装的位置也是系统自带的python2中的位置。直接用pip命令,别用pip3命令。

所以,在进行tensorflow-gpu安装的时候,一定要去仔细检查你的版本是否和你当前的CUDA可以匹配上。这下子简单啦,用你的离线包去安装吧!

最后再强调一个事情,在tensorflow-gpu运行中,很多会用到google的protobuf的库。目前,tensorflow1.5版本只支持protobuf-3.4,不支持protobuf-3.5的哦~~~所以。用pip install protobuf==3.4来安装当前这个版本吧!

3.3 安装pycharm

从我给的列表中,你可以发现,这个pycharm跟其他东西是没有关系的。所以,安装好之后就可以了。

新版本的pycharm可以自动创建新的虚拟环境、新的conda环境和纯python解释器。当然,你可以选择用pycharm去创建conda环境。但是,时刻记着,如果用pycharm去创建conda环境,你还是免不了面临着TensorFlow等依赖包的 问题。有兴趣的朋友可以去试试,在这里我就不介绍了。

接下来的问题就是,你将你的解释器指向你的虚拟环境中的/bin/python3.当然,当你这么做的时候,你会发现自己列表中的site-package少得可怜。就一些基础的包,什么都没有。是不是做错了什么。

好,这个坑,我只想说,网上有一个人这么写,我就忍了。网上这么多人都这么写,我就在想,你们这么不负责任吗?写这个文章的,到底有几个人真正的安装配置过环境?只是自己随手整理一份安装配置的步骤,去博取好的名声吗?

我所能见到过的所有网上方案,都是,你去虚拟环境中,把.conda/env/tensorflow/lib/python3.6/site-package里面所有的包拷出来,导入到Anaconda3/lib/python3.6/site-package中,然后用你的pycharm把解释器指向这个文件。

确实,这个问题这样解决未尝不可,绝对是一种好的方法,那么如果你用这种方法,这个虚拟环境存不存在到底有什么用?完全没有任何作用!!!!!以后你用虚拟环境可能也就下载个包,然后再把下载的包复制到你的主目录下面。这叫哪门子虚拟环境,那你不安装anaconda岂不是更省事?

好吧,告诉大家正确的方法,选择完虚拟环境里的python3解释器之后,在你安装的虚拟环境列表中有三个按钮,分别是“+”, “-”, “O”。注意这个"O"是绿色的,有点类似于Anaconda的标志,点击这个刷新键,OK,一切成功!!!!

接下来,请开始你们的表演吧。

4.附加问题

有人可能会出现循环登陆的问题,我之前的环境也崩溃过。是因为进入linux之后,页面卡住不动,只出现一张紫色的背景。我记得当时我用的是cuda8.0这个版本,并且按照网上的教程卸载驱动,之后重新安装。

这个是由于你的驱动问题,这个你在网上搜一下,用他们的解决方案就可以。思路是,用你主板上自带的集成显卡作为你显示器使用,而用你的Nvidia独立显卡用作计算使用。

这个在ubuntu14版本中确实会出现这个问题。如果你不小心出现了这个问题,很有可能是被网上的教程坑掉了。在ubuntu16以及cuda9.0中,这个CUDA9.0自带的显卡驱动貌似是最新的,你完全不用去卸载和重新安装。可以预想到,英伟达公司应该以后会永久解决这个问题。在你们以后的版本中,应该不会再出现循环登陆这一类的问题。

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

推荐阅读更多精彩内容