深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结

深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow opencv
1 安装ubantu16.04
安装时不要在线更新,在线更新下面那个选项也不选

2 安装显卡驱动
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
去官网https://www.nvidia.cn/Download/driverResults.aspx/138998/cn搜索对应显卡的最新驱动,并记住型号。例如我的显卡是geforce GTX750(好像是750M),对应最新的型号是410.66,记住410。
如果旧电脑有显卡驱动,不放心的话可以先卸载旧显卡驱动
sudo apt-get purge nvidia*
然后安装最新显卡驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-410(注意版本)
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

3 下载CUDA
首先确定自己要装的CUDA版本,https://blog.****.net/wanzhen4330/article/details/81660277
从上面网站对照确认。推荐安装CUDA8.0 对应cuDNN V6 和tensorflow-gpu 1.4.0
先下载安装包 https://developer.nvidia.com/cuda-toolkit
进去后点击Download Now,再点击Legacy Releases 进去选择
CUDA Toolkit 8.0 GA2或者CUDA Toolkit 8.0 GA1,
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
注意这里选择runfile(local)下载,有时侯会遇到经常下载到最后几秒显示下载失败的,这个换个时间段下载就好了,或者用windows下载好再拷贝过来安装。

4 先进行gcc降级,再安装CUDA
cuda8.0目前仅支持gcc5.3,而ubuntu16.04自带的gcc版本为gcc5.4,所以要降级。
  先查看你是否需要降级GCC
gcc -v
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
如果你的版本是5.3.1以下的就不用降级了,否则要降级gcc。
  下载gcc5.3.0。下载地址为:https://pan.baidu.com/s/1cL2v62,下载好后,进入到该文件目录,执行如下操作:
  解压:
sudo tar -zxvf gcc-5.3.0.tar.gz
  进入到gcc目录:
cd gcc-5.3.0/
  下载依赖项:
sudo ./contrib/download_prerequisites
  新建一个编译的文件夹,并进入该文件夹:
sudo mkdir build
cd build/
  生成makefile文件:
sudo …/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
  编译:
sudo make -j4
  编译结束以后(这个过程非常久,大概45分钟左右,记住千万别退出终端),我们就可以执行安装了:
sudo make install
  查看是否成功:
gcc --version
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
g++ --version
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
5 安装CUDA

gcc降到5.3之后,可以直接来安装了cuda了,进到你下载好的cuda-8.0的run文件目录,运行如下命令:
sudo ./cuda_8.0.44_linux.run 对应版本号注意修改
  输入“q”跳过preface,输入接受:accept; 然后回车。接下来的操作,选择“n”不安装的是英伟达驱动,我们已经安装了,以及CUDA sample,因为我们只通过TensorFlow调用CUDA,不直接写CUDA代码。其他的选择“y”。
  如果出现下图的结果,表明你已经安装成功了,虽然有一个警告和一个特别注意但是不影响结果。
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
  从上图可是,下载的例子里面是缺少一些支持库的,现在我们安装这些库:(这个我没有遇到过)
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-gl
x libglu1-mesa libglu1-mesa-dev
  从上图可以看出来,有一个特别注意,所以我们做如下配置:打开.bashrc来进行配置,命令如下:
sudo vim ~/.bashrc
  并将如下的几行内容复制的到.bashrc文件的最下面:
export PATH=/usr/local/cuda-8.0/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64KaTeX parse error: Expected '}', got 'EOF' at end of input: …LIBRARY_PATH:+:{LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
  然后设置环境变量和动态链接库,在命令行输入:
sudo vim /etc/profile
   在打开的文件末尾加入:
export PATH=/usr/local/cuda/bin:$PATH
  保存之后,创建链接文件:
sudo gedit /etc/ld.so.conf.d/cuda.conf
  在打开的文件中添加如下语句:
/usr/local/cuda/lib64
  然后执行如下命令使得链接立即生效:
sudo ldconfig
  现在重启电脑!
现在就开始测试一下看看cuda是否安装成功吧!输入如下命令打开测试的代码位置:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
  编译这些代码:
sudo make -j4
执行代码:
./deviceQuery
  如果出现如下结果—显卡的配置信息,恭喜你,这就证明你成功的安装了cuda
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
也可以使用nvidia-smi查看是否出现相应信息

6 cuDNN 安装

 https://developer.nvidia.com/rdp/cudnn-archive 下载

Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0里的cuDNN v6.0 Library for Linux 注意不要直接点击下载,这会让你注册帐号才能下,然而跟本注册不了(可能要翻墙)。正确的方法是右击选择 复制链接,到windows中用迅雷下载。如下图
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
  下载后解压:
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz
  执行如下操作:
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/
cd …/lib64/
sudo cp lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6
sudo ln -s libcudnn.so.6 libcudnn.so
执行完之后,cuDNN算是安装完成了。(版本号记得改为自己的)

7 anaconda安装
anaconda里面集成了很多关于python科学计算的第三方库,并且方便对多个环境进行管理,我们的TensorFlow环境就要基于anaconda搭建。
  注意,这里基于python3.5进行搭建,相对2.7,它更代表了python未来的发展趋势。
  7.1.下载
  下载地址为:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
  从这里下载比较快,选择的对应版本是 Anaconda3-4.2.0-Linux-x86_64.sh
  7.2.安装
  在Anaconda的下载目录执行以下命令:
bash Anaconda3-4.2.0-Linux-x86_64.sh
  接下来进入License文档,按q直接跳过,之后选择安装路径,可以选择默认路径,然后确定就可以开始安装了。
  最后程序提示是否将anaconda3的binary路径加入.bashrc,建议添加。至此anaconda3安装结束。

8 安装tensorflow
8.1.创建TensorFlow虚拟环境
  使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
  这里创建基于python3.5的虚拟环境:
conda create -n tensorflow python=3.5
  之后可以使用命令source activate tensorflow**虚拟环境,
使用命令source deactivate tensorflow来退出虚拟环境。

8.2.安装TensorFlow
  首先进入tensorflow虚拟环境:source activate tensorflow(因为之前创了个虚拟环境,名字取的是tensorflow)然后输入命令:
pip install tensorflow-gpu1.4.0
  等待安装完毕。然而在线安装网速特别慢,简直龟速,经常下到后面因为网速问题下载失败。后面尝试去官网下载对应的版本tensorflow-gpu
1.4.0的whl文件,如何打算直接用pip install XXX.whl
发现官网下载whl文件也是龟速,让屈豪帮我翻墙下,好像说也不行,后面他说在用迅雷帮我下,怎么操作的?然而我没用上他的,因为我发现了一种方法,参考https://blog.****.net/lixuminglxm/article/details/81386521
我用这个命令下的,速度起飞
pip install tensorflow-gpu==1.4.0 -i https://pypi.douban.com/simple 以后下东西如果很慢,也可以尝试这样下。
然后可以关闭环境 source deactivate tensorflow
[九]安装Opencv3.4.0
  首先进入tensorflow虚拟环境: source activate tensorflow
注意我们安装的tensorflow还有opencv都是在虚拟环境里面,所以也只有这个环境里面可以使用。
  再输入命令下载:
pip install opencv-python
  很简单地安好了。
Source deactivate tensorflow

10 安装pycharm
官网http://www.runoob.com/w3cnote/best-python-ide-for-developers.html安装pycharm ,注意官网有两个版本下载,专业版和社区版,专业版下载安装要付费或者**,比较麻烦,所以直接装的社区版。

下载完成后,安装包在Downloads文件夹下
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
右键安装包,点击“Extract Here”意思是提取到这里,相当于解压
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
提取完成后,会生成一个pycharm-2017.1.4的文件夹
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
在终端指定到pycharm-2017.1.4/bin目录下
输入“cd Downloads/pycharm-2017.1.4/bin”
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
执行sh命令,打开安装
输入“sh ./pycharm.sh”
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
回车后,大概等待十几秒(我的虚拟机比较卡…),出现Complete Installation弹框,如果需要导入之前安装版本的配置的话,就选第一个,没有就选第二个。
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
所以这里选第二个,直接点击OK即可
点击OK之后弹出 PyCharm Privary Policy Agreement框,隐私政策协议,直接点击Accept 同意即可!
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
然后安装完毕。
11 pycharm 配置tensorflow环境

打开pycharm,设置pycharm的解析器为你安装tensorflow所用的python解析器
【File】→【Settings】→【project:untitled】→【Project:interpreter】
选择python3.5的解析器
如下图所示,在project interpreter 点击齿轮按钮,选择add
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
然后在第一个Virtualenv Environment 里,在new environment 或者 existing environment 里找到新的解释器。因为之前的tensorflow 和opencv 都是安装在anaconda 里新建的tensorflow 虚拟环境中,然后tensorflow装的是python3.5版本的,所以在那找到对应的python3.5 本来应该出现在home/liz/anaconda3/envs/tensorflow/bin里的,结果死活找不到,我记得明明是装在建的名为tensorflow的虚拟环境中啊。后面只好用home/liz/anaconda3/bin/python3.5 居然成功了。
其实暂时还没有成功,因为更改好后,运行还会报错ImportError: libcublas.so.8.0: cannot open shared object file: No such file

可是在终端可以import tensorflow的,这说明tensorflow是安装成功了的,只不过pycharm没有找到bash,是环境搭建的问题。后来不断百度,有说终端打开pycharm就可以运行的,试了一下,果然可以:终端输入charm就可以打开pycharm,再安装上面更改解释器,成功运行!(尝试点击图标进入pycharm,运行失败)
但就是想直接点击图标打开pycharm怎么办?又发现了这个
https://blog.****.net/dl_chenbo/article/details/53262230
我用上面第二种方法,在菜单Edit->Run configurations 中,手动设置Environment variables,添加LD_LIBRARY_PATH的内容,即可解决问题。
LD_LIBRARY_PATH的内容可以在命令行输入
echo $LD_LIBRARY_PATH查看对应的显示。
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
深度学习工作站环境搭建 ubantu16.04 安装显卡驱动 CUDA8.0 cuDNN6 anaconda tensorflow1.4.0 opencv3.4 含泪总结
这样的话,即使从桌面图标点击进入pycharm,只要在更改解释器的时候,顺便把这个加上,就可以正常运行了。(另外解释器更改好后,同一个工程好像不用每次进去都更改一下)。

PS:因为机器太旧的原因,运行程序时可能会出现警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
参考下面网址:
https://blog.****.net/hq86937375/article/details/79696023

https://blog.****.net/qq_41185868/article/details/79127838

在代码前加上两行
import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’
就没事啦