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:
输入下面命令进行安装:
bash Anaconda2-5.2.-Linux-x86_64.sh
按回车进入安装说明,最后输入yes
设置文件的安装位置按回车选择默认的安装位置:
设置是否加入环境变了,本人选择yes:
安装到最后会显示是否安装Microsoft VSCode ,这个软件不需要,本人选择no,到这里就算安装完成了:
安装完之后执行如下命令把conda更新为清华源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
执行运行 conda install numpy
测试一下吧,看看有没有问题
进入ananconda的安装目录进入bin,执行./spyer,但是竟然出现了下面这个错误,咋办呢,哎只能google,百度看看有没有人遇到过。
t通过各种途径最后还是解决spyder运行失败问题,运行下面命令:
conda install pyopengl
时间会比较久等待它安装完成即可:
重新运行,并且输入一个比较简单的helloworld程序,成功输出,到这里anaconda2的安装完成:
./spyder
默认的spyder是不支持中文输入的,按照下面的操作可以修复,本人使用的是基于fcitx的搜狗输入法 :
进入anaconda的安装目录之后进行下面操作:
//先备份之前的文件
1 mv plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so.bak
// 复制fcitx的库
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:
sudo vim /etc/modprobe.d/blacklist.conf //修改这个文件,在文件的后面添加第2行的内容
blacklist nouveau
sudo update-initramfs -u //执行这条语句之后重启系统
lsmod | grep no //如果没有任何输出证明禁止nouveau驱动成功
我们采用比较简单的方式安装显卡驱动,点击软件更新-->附加驱动,选择NVIDIA驱动,之后点击应用更改,等待系统下载驱动,安装完之后重启一下系统.
之后在终端输入下面的命令:
nvidia-smi
结果如下,识别到显卡证明安装是没有问题的。
三、安装cuda9.0
由于ubuntu18.04版本的gcc是7.3版本,但是编译cuda需要的版本要低于6.0,因此需要对gcc进行降级.
安装gcc4.8:
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
将gcc4.8与gcc7.3设置到gcc的候选中,之后就可以切换gcc版本.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8
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
执行如下命令进行切换:
sudo update-alternatives --config gcc
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
设置可执行权限
sudo chmod a+x cuda_9.0.176_384.81_linux.run
2 ./cuda_9.0.176_384.81_linux.run 开始安装
在选择是否安装显卡驱动的时候选择no,其余选择yes:
The NVIDIA CUDA Toolkit provides command-line and graphical
tools for building, debugging and optimizing the performance
of applications accelerated by NVIDIA GPUs, runtime and math
libraries, and documentation including programming guides,
user manuals, and API references. Default Install Location of CUDA Toolkit
Do you accept the previously read EULA?
accept/decline/quit: accept You are attempting to install on an unsupported configuration. Do you wish to continue?
(y)es/(n)o [ default is no ]: y Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]: Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y Enter CUDA Samples Location
[ default is /home/zhuang ]: Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
Installing the CUDA Samples in /home/zhuang ...
Copying samples to /home/zhuang/NVIDIA_CUDA-.0_Samples now...
Finished copying samples. ===========
= Summary =
=========== Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Installed in /home/zhuang Please make sure that
- PATH includes /usr/local/cuda-9.0/bin
- 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 To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA. ***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.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver Logfile is /tmp/cuda_install_7476.log
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补丁包:
sudo sh cuda_9.0.176.1_linux.run
安装过程如下: Default Install Location of CUDA Toolkit
Do you accept the previously read EULA?
accept/decline/quit: accept Enter CUDA Toolkit installation directory
[ default is /usr/local/cuda-9.0 ]: Installation complete!
Installation directory: /usr/local/cuda-9.0 Signal caught, cleaning up
安装cuda_9.0.176.2_linux.run补丁包
sudo sh cuda_9.0.176.2_linux.run
安装过程如下:
Default Install Location of CUDA Toolkit
Do you accept the previously read EULA?
accept/decline/quit: accept Enter CUDA Toolkit installation directory
[ default is /usr/local/cuda-9.0 ]: Installation complete!
Installation directory: /usr/local/cuda-9.0 Signal caught, cleaning up
安装cuda_9.0.176.3_linux.run补丁包:
sudo sh cuda_9.0.176.3_linux.run
安装过程如下
Default Install Location of CUDA Toolkit
Do you accept the previously read EULA?
accept/decline/quit: accept Enter CUDA Toolkit installation directory
[ default is /usr/local/cuda-9.0 ]: Installation complete!
Installation directory: /usr/local/cuda-9.0 Signal caught, cleaning up
安装cuda_9.0.176.4_linux.run补丁包:
sudo sh cuda_9.0.176.4_linux.run
安装过程如下:
Default Install Location of CUDA Toolkit
Do you accept the previously read EULA?
accept/decline/quit: accept Enter CUDA Toolkit installation directory
[ default is /usr/local/cuda-9.0 ]: Installation complete!
Installation directory: /usr/local/cuda-9.0 Signal caught, cleaning up
执行nvcc -V看看是否安装成功.
~/NVIDIA_CUDA-.0_Samples //进入cuda的测试demo
make clean //gcc 一定要降级到6或6.0以下,不能用最新版本的7.3
make -j4 //开始编译
编译完成没有出错:
运行编译的测试,看下面的测试结果基本没问题,现在基本搞定cuda9.0的安装:
1_Utilities/deviceQuery
./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
拷贝相关的库文件:
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
删除文件原来的l链接:
cd /usr/local/cuda/lib64
sudo rm libcudnn.so libcudnn.so.7 //删除原来的链接
sudo ln -s libcudnn.so.7.0. libcudnn.so.7 //生成新的链接
sudo ln -s libcudnn.so. 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:
cp /usr/src/cudnn_samples_v7/ ~ -raf //拷贝到home目录
cd ~/cudnn_samples_v7/mnistCUDNN //进入相关测试项目
make clean && make //编译
4 ./mnistCUDNN //运行测试 sudo dpkg --contents libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb //用于查看安装包安装的信息
若运行出错则根据出错信息拷贝相关的库文件:
sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
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的源:
vim ~/.pip/pip.conf
//写入一下内容
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/ 6 pip install django //测试安装的速度
升级pip到最新版本:
sudo apt-get install python-pip python-dev
安装命令:
pip install tensorflow-gpu==1.7
卸载命令:
sudo pip uninstall tensorflow-gpu
tensorflow的helloworld代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
输出结果
六、添加keras的安装
pip install keras
弄到这里深度学习的环境终于搭建好啦,好久没有打王者了,打两局李白庆祝一下。