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

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

  正题,实验室因为实验环境需要上了台搭载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是一个人,成功了是一个人,写论文是一个人;再加上实验室+学院的琐事,同学安慰说“能者多劳”,我头也没抬“多劳得多得啊……”不知道他脸上的表情,

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

踩坑记:Tensorflow环境搭建的更多相关文章

  1. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  2. centos 7( linux )下搭建elasticsearch踩坑记

    原文:https://blog.csdn.net/an88411980/article/details/83150380 概述    公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...

  3. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...

  4. 【踩坑记】从HybridApp到ReactNative

    前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...

  5. windows container 踩坑记

    windows container 踩坑记 Intro 我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署 ...

  6. iOS自动化打包上传的踩坑记

    http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDe ...

  7. WinUI 3 踩坑记:前言

    WinUI 3 (Windows App SDK 于 2021 年 11 月发布了第一个正式版 v1.0.0 [1],最新版本是 v1.1.5 [2].我的基于 WinUI 3 的个人项目 寻空 从年 ...

  8. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  9. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  10. Spark踩坑记——共享变量

    [TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...

随机推荐

  1. Pandas模块:表计算与数据分析

    目录 Pandas之Series Pandas之DataFrame 一.pandas简单介绍 1.pandas是一个强大的Python数据分析的工具包.2.pandas是基于NumPy构建的. 3.p ...

  2. SpringBoot图片上传(一)

    简单描述:点击上传文件的图标,上传文件,上传成功后,图标编程上传的图片. 吐槽:文件上传下载这种东西,总是感觉莫名的虚-_-||  也不知道是造了什么孽,(其实就是IO File这一块的知识了解的不太 ...

  3. laravel 更新验证

    public function update(Request $request, User $user) { // 验证规则. $rules = [ 'email' => [ 'nullable ...

  4. python DLL接口测试

    #coding=utf-8 import clr import sys import threading from itertools import permutations sys.path.app ...

  5. Redis的并发竞争问题

    问题描述:多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了.或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了. 一个key的值是1,本来按顺序 ...

  6. Git 从 master 分支拉新分支开发

    一. 切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout master $git pull 二.从当前分支拉copy开发分支 $git checkout -b ...

  7. javascript OOP(上)(八)

    一.OOP的概念和继承 1.OOP概念 面向对象程序设计(Object-oriented programming,OOP)是一种程序设计范型,同时也是一种程序开发的方法.对象指的是类的实例.它将对象作 ...

  8. lrzsz linix 远程文件传输工具。

    安装方法 #yum install lrzsz -y 使用方法 #rz -y 上传指定文档到当前目录

  9. pycharm-professional-2017.1.1.exe专业版激活方法

    pycharm 2017.1专业版破解码 1.在server选项里边输入 http://elporfirio.com:1017/就可以了. BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJ ...

  10. go-关于指针和地址

    经常会见到: p . *p , &p 三个符号  p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数. 而*p表示此指针指向的内存地址中存放的内 ...