PC:ubuntu18.04、i5、七彩虹GTX1060显卡、固态硬盘、机械硬盘
作者:庄泽彬(欢迎转载,请注明作者)
说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9.1,与cudnn7.0.5版本的,但是无论怎么安装tensorflow-gpu都是失败,后来找到原因了,目前的tensorflow暂不支持cuda9.1,因此更换成cuda9.0,cudnn7.0.7安装成功,而且在英伟达官网下载各个安装包的时候出现在下载到99.9%时候总是下载失败,在某个时间段总是下载失败,个人经验在晚上8点之后下载是最顺利的,我在下午5点下载的cuda的时候总是在99.9%的时候下载失败,本文记录本人的安装过程方便以后安装,顺便也给其他小伙伴参考一下.
一、安装anaconda2:
本人下载的版本是:Anaconda2-5.2.0-Linux-x86_64.sh
anaconda2官网下载地址:https://www.anaconda.com/download/#linux
anaconda2清华源下载地址:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
安装anaconda2:
输入下面命令进行安装:
1 bash Anaconda2-5.2.0-Linux-x86_64.sh
按回车进入安装说明,最后输入yes
设置文件的安装位置按回车选择默认的安装位置:
设置是否加入环境变了,本人选择yes:
安装到最后会显示是否安装Microsoft VSCode ,这个软件不需要,本人选择no,到这里就算安装完成了:
安装完之后执行如下命令把conda更新为清华源:
1 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
2 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
3 conda config --set show_channel_urls yes
执行运行 conda install numpy
测试一下吧,看看有没有问题
进入ananconda的安装目录进入bin,执行./spyer,但是竟然出现了下面这个错误,咋办呢,哎只能google,百度看看有没有人遇到过。
t通过各种途径最后还是解决spyder运行失败问题,运行下面命令:
1 conda install pyopengl
时间会比较久等待它安装完成即可:
重新运行,并且输入一个比较简单的helloworld程序,成功输出,到这里anaconda2的安装完成:
1 ./spyder
默认的spyder是不支持中文输入的,按照下面的操作可以修复,本人使用的是基于fcitx的搜狗输入法 :
进入anaconda的安装目录之后进行下面操作:
//先备份之前的文件
1 mv plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so.bak
// 复制fcitx的库
2 cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so plugins/platforminputcontexts/
重启spyder生效,看看下图内容可以输入中文:
设置spyder的动画显示不在console显示,在独立的窗口运行,在console不能播放动画,只能看到第一帧的图片,因此需要设置
tool->preferences-> 显示下面的对话框,选择qt5,之后点击ok,重启spyder生效.
二、安装GTX1060显卡驱动.
先禁止系统自带的显卡驱动nouveau:
1 sudo vim /etc/modprobe.d/blacklist.conf //修改这个文件,在文件的后面添加第2行的内容
2 blacklist nouveau
3 sudo update-initramfs -u //执行这条语句之后重启系统
4 lsmod | grep no //如果没有任何输出证明禁止nouveau驱动成功
我们采用比较简单的方式安装显卡驱动,点击软件更新-->附加驱动,选择NVIDIA驱动,之后点击应用更改,等待系统下载驱动,安装完之后重启一下系统.
之后在终端输入下面的命令:
1 nvidia-smi
结果如下,识别到显卡证明安装是没有问题的。
三、安装cuda9.0
由于ubuntu18.04版本的gcc是7.3版本,但是编译cuda需要的版本要低于6.0,因此需要对gcc进行降级.
安装gcc4.8:
1 sudo apt-get install gcc-4.8
2 sudo apt-get install g++-4.8
将gcc4.8与gcc7.3设置到gcc的候选中,之后就可以切换gcc版本.
1 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
2 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
3 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
4 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
执行如下命令进行切换:
1 sudo update-alternatives --config gcc
2 sudo update-alternatives --config g++
根据自己的实际需要选择相应的版本好:
cuda与cudnn版本的选择:
之前就一直在纠结一个问题安装cuda与cudnn的版本要怎么选,怎么不同的人选择的版本都不一样,要怎么搭配,后来终于搞清楚了,要确定cuda的版本,要先知道cudnn的版本,我们先去官网看看cudnn有那些版本可以下载:https://developer.nvidia.com/rdp/cudnn-archive,看看下面的这幅图片,官方已经给出了cuda与cudnn搭配的建议。我们根据这个搭配下载相应的版本,本文暂时不下载最新版本的cuda与cudnn下载老一点的版本比较稳定,cuda9.0与cudnn7.05.
载cuda9.0的下载链接:cuda9.0,本人的下载设置见下图,之后点击下载,顺便把相应的补丁也下载下来,需要注意的是CUDA包括了CPU计算库和显卡驱动,因此在安装的时候不要重复安装显卡驱动,不然前面装了那么久GTX1060显卡驱动就白装了啊。
安装依赖的相关的包:
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev
设置可执行权限
1 sudo chmod a+x cuda_9.0.176_384.81_linux.run
2 ./cuda_9.0.176_384.81_linux.run 开始安装
在选择是否安装显卡驱动的时候选择no,其余选择yes:
1 The NVIDIA CUDA Toolkit provides command-line and graphical
2 tools for building, debugging and optimizing the performance
3 of applications accelerated by NVIDIA GPUs, runtime and math
4 libraries, and documentation including programming guides,
5 user manuals, and API references.
6
7
8 Default Install Location of CUDA Toolkit
9 Do you accept the previously read EULA?
10 accept/decline/quit: accept
11
12 You are attempting to install on an unsupported configuration. Do you wish to continue?
13 (y)es/(n)o [ default is no ]: y
14
15 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
16 (y)es/(n)o/(q)uit: n
17
18 Install the CUDA 9.0 Toolkit?
19 (y)es/(n)o/(q)uit: y
20
21 Enter Toolkit Location
22 [ default is /usr/local/cuda-9.0 ]:
23
24 Do you want to install a symbolic link at /usr/local/cuda?
25 (y)es/(n)o/(q)uit: y
26
27 Install the CUDA 9.0 Samples?
28 (y)es/(n)o/(q)uit: y
29
30 Enter CUDA Samples Location
31 [ default is /home/zhuang ]:
32
33 Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
34 Installing the CUDA Samples in /home/zhuang ...
35 Copying samples to /home/zhuang/NVIDIA_CUDA-9.0_Samples now...
36 Finished copying samples.
37
38 ===========
39 = Summary =
40 ===========
41
42 Driver: Not Selected
43 Toolkit: Installed in /usr/local/cuda-9.0
44 Samples: Installed in /home/zhuang
45
46 Please make sure that
47 - PATH includes /usr/local/cuda-9.0/bin
48 - LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
49
50 To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
51
52 Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
53
54 ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
55 To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
56 sudo <CudaInstaller>.run -silent -driver
57
58 Logfile is /tmp/cuda_install_7476.log
59 Signal caught, cleaning up
修改环境变量:
vim ~/.bashrc //添加2,3行内容
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc //使能环境变量
安装cuda_9.0.176.1_linux.run补丁包:
1 sudo sh cuda_9.0.176.1_linux.run
2 安装过程如下:
3
4 Default Install Location of CUDA Toolkit
5 Do you accept the previously read EULA?
6 accept/decline/quit: accept
7
8 Enter CUDA Toolkit installation directory
9 [ default is /usr/local/cuda-9.0 ]:
10
11 Installation complete!
12 Installation directory: /usr/local/cuda-9.0
13
14 Signal caught, cleaning up
安装cuda_9.0.176.2_linux.run补丁包
1 sudo sh cuda_9.0.176.2_linux.run
2 安装过程如下:
3 Default Install Location of CUDA Toolkit
4 Do you accept the previously read EULA?
5 accept/decline/quit: accept
6
7 Enter CUDA Toolkit installation directory
8 [ default is /usr/local/cuda-9.0 ]:
9
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12
13 Signal caught, cleaning up
安装cuda_9.0.176.3_linux.run补丁包:
1 sudo sh cuda_9.0.176.3_linux.run
2 安装过程如下
3 Default Install Location of CUDA Toolkit
4 Do you accept the previously read EULA?
5 accept/decline/quit: accept
6
7 Enter CUDA Toolkit installation directory
8 [ default is /usr/local/cuda-9.0 ]:
9
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12
13 Signal caught, cleaning up
安装cuda_9.0.176.4_linux.run补丁包:
1 sudo sh cuda_9.0.176.4_linux.run
2 安装过程如下:
3 Default Install Location of CUDA Toolkit
4 Do you accept the previously read EULA?
5 accept/decline/quit: accept
6
7 Enter CUDA Toolkit installation directory
8 [ default is /usr/local/cuda-9.0 ]:
9
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12
13 Signal caught, cleaning up
执行nvcc -V看看是否安装成功.
1 ~/NVIDIA_CUDA-9.0_Samples //进入cuda的测试demo
2 make clean //gcc 一定要降级到6或6.0以下,不能用最新版本的7.3
3 make -j4 //开始编译
编译完成没有出错:
运行编译的测试,看下面的测试结果基本没问题,现在基本搞定cuda9.0的安装:
1 1_Utilities/deviceQuery
2 ./deviceQuery
四、安装cudnn7.05
下载链接:https://developer.nvidia.com/rdp/cudnn-archive下载cudnn7.0.5需要注册一个NIVDIA账号.下载设置见图,会得到 cudnn-9.0-linux-x64-v7.tgz这个文件.
解压:
tar -xvf cudnn-9.0-linux-x64-v7.tgz
拷贝相关的库文件:
1 sudo cp include/cudnn.h /usr/local/cuda/include/
2 sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
3 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
删除文件原来的l链接:
1 cd /usr/local/cuda/lib64
2 sudo rm libcudnn.so libcudnn.so.7 //删除原来的链接
3 sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 //生成新的链接
4 sudo ln -s libcudnn.so.7 libcudnn.so
5 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
6 sudo ldconfig
方法二:上述的方法的虽然可以安装cudnn但是,却不知道怎么测试cudnn是否安装成功,安装deb包有相关的测试demo:
下载下图的这三个文件:
安装deb包:
拷贝测试demo:
1 cp /usr/src/cudnn_samples_v7/ ~ -raf //拷贝到home目录
2 cd ~/cudnn_samples_v7/mnistCUDNN //进入相关测试项目
3 make clean && make //编译
4 ./mnistCUDNN //运行测试
sudo dpkg --contents libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb //用于查看安装包安装的信息
若运行出错则根据出错信息拷贝相关的库文件:
1 sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
2 sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig
看下图测试成功:
五、安装tensorflow
官网给出了安装tensorflow的几种方法,大家可以根据自己需求用相应的方法安装:https://www.tensorflow.org/install/install_linux#tensorflow_gpu_support
我们采用pip的方式安装tensorflow,在安装之前先更新一下pip的源:
1 vim ~/.pip/pip.conf
2 //写入一下内容
3 [global]
4 trusted-host=mirrors.aliyun.com
5 index-url=http://mirrors.aliyun.com/pypi/simple/
6 pip install django //测试安装的速度
升级pip到最新版本:
1 sudo apt-get install python-pip python-dev
安装命令:
1 pip install tensorflow-gpu==1.7
卸载命令:
1 sudo pip uninstall tensorflow-gpu
tensorflow的helloworld代码:
1 import tensorflow as tf
2 hello = tf.constant('Hello, TensorFlow!')
3 sess = tf.Session()
4 print(sess.run(hello))
输出结果
六、添加keras的安装
1 pip install keras
弄到这里深度学习的环境终于搭建好啦,好久没有打王者了,打两局李白庆祝一下。
觉得不错,就给我点小支持吧,蟹蟹