• 踩坑记:Tensorflow环境搭建


      自从上一篇论文投出去,之后就各种事就来了……处理那些乱七八糟的事就是让人心累,在加上师哥们毕业,能帮我的人越来越少了,而要指望你的人呢,越来越多。一想到那些用搜索引擎都搜不到资料的人,蓦地想起邓爷爷说的那句“学习计算机要从娃娃抓起……”

      上来先吐槽这么几句哈,毕竟憋了快两个星期了,

      正题,实验室因为实验环境需要上了台搭载1080Ti的机器,简单说几项配置:6核i7CPU,64G内存,256固态+4T机械,1080TI显卡(都说它有8G显存,但实验时发现有10G+的显存)单路,风扇散热,双系统(win10+Ubuntu 16.04)。之前因为论文的事一直拖着没配置环境,上上周五才有时间开始弄这套环境,共在Ubuntu上建了4个新账户,每次编译TF老是出问题,所以配置了不下20遍吧,中间伴随着降低gcc版本、调整g++版本、降低显卡驱动版本等等闭眼的操作……当和同学说编译不过时,同学说同样的教程他那边一次成功,在一次次重新来过的过程找那个整个人的心情是相当低落的,不是不干活,是靠自己经验真的找不到BUG啊,一度开始怀疑自己能力、怀疑人生,还没人讨论一起研究这些,心里苦,但是说不出口……

      当时遇到的困境在于:

      1、本地编译TF过程中,报一大堆警告,就是那种c++代码,但是还一直在编译,直到结束,

      2、编译完,安装之后,发现:

        ①import tensorflow as tf,直接报错,可能就是缺那个p****的包,记得当时装上也不行,无果……(与编译环境有关)

        ②import成功,终端没反应,之后输入那个helloTF的例子测试,直接报错找不到模块,就这一个问题差不多用了两天时间来修,最终无果……

      3、还有那种报找不到lib…….so.5及其5.1的问题,这个问题是因为安装的cuDNN和你编译时候选的版本不一样,可能是选了6,其实这里网友建议降低到5.1或者5版本,这时候你改为用5.1版本号程序能自动寻路找到已安装的库,

      4、有时候本地编译的安装失败后卸载,直接pip安装TensorFlow-gpu,这时候还是无法import,每次遇到这种情况,内心几乎是崩溃的,

      5、最后搭建完,测试代码,虽然能感觉到明显的加速,但是运行程序时候一般会显示几条“没编译***的库,但是能够加速你的CPU计算”,而不是那句可爱的“Successfully opened CUDA……”(可能与编译环境有关)

      ……(没错,省略号可能都表示不了我同时打开了近20个终端在操作)

    **************************************************************************************************************************************************************************************************************************

      转机出现在删除所有之前的账户,重建账户再来一遍时候。这次根本就是死马当活马医了,觉得不行就重装个系统试试……

      1、这次重新搭建环境,重新测试了所有环境变量,配置,安装好编译器和Anaconda3(3.5版本)之后按照教程《深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0》继续搭(zuo),当看到显卡驱动那里,想着自己当时上的是开源最高版本驱动,觉得可能有问题,遂降低为专有驱动(一直不降驱动是因为之前同学说他一直用的官网推的最新驱动)。之后按照教程安装CUDA,测试了两个例子,没问题,这一步一直都能测试成功。

      2、再按照《深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow》安装cuDNN并行,这个地方和之前不同的是,以前一直在用6.0版本,这次降低到5.1,这个安装时候可以看到库的存放位置,不要错,还有权限问题。

      3、剩下的就是平时周围人所说的piip install就能安装的TensorFlow,一直坚持本地编译安装,是因为同学说本地编译的更好,我信了,然后……就一路坑……索性这次就直接pip安装了,反正再不行就重装系统了,结果……结果就可以了,

      在测试helloTensorFlow时,握着鼠标的手都是在发抖的,成功后接着测试tensor运算,测试mnist的例子,一路无阻,后来还跑了一把生成歌词的例子,几分钟跑完,至此确信基础环境搭建完毕,还想测试强化学习那个小鸟游戏的代码,但是貌似还要OpenCV,就没再折腾,

      如果有人想说要用Python2.7,那么需要你先了解下github上Python 2.7和3.5+版本的程序的占有量,

      如果说还有参考资料的话,那就是一篇《TensorFlow学习一:源码安装》,有详细配置编译细节,

      如果最后还要问我有什么想说的:

      看资料是一个人,看论文是一个人,搭环境是一个人,做实验是一个人,Debug是一个人,成功了是一个人,写论文是一个人;再加上实验室+学院的琐事,同学安慰说“能者多劳”,我头也没抬“多劳得多得啊……”不知道他脸上的表情,

    【我能提供的经历就这么多,有问题可继续评论提出,当然有说的不对的地方也欢迎大家提出,马上改,】

  • 相关阅读:
    Android基础知识
    使用Android Studio和Genymotion模拟器搭建Andriod开发环境
    【原】Java开发环境搭建
    【转】JavaScript顶级对象参考模型
    【转】在.Net中关于AOP的实现
    【转】各版本IIS下ASP.net请求处理过程区别
    【转】我们应该如何去了解JavaScript引擎的工作原理
    Linux系统编程(27)——线程控制
    Linux系统编程(26)——守护进程
    Linux系统编程(25)——终端
  • 原文地址:https://www.cnblogs.com/1394htw/p/7112408.html
Copyright © 2020-2023  润新知