深度学习环境配置看着篇就够了

149 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

    现如今,随着人工智能技术的快速发展,越来越多的学习者开始关注该领域。其中,深度学习是人工智能领域应用最为成功的一个分支。     想要入门深度学习,第一节课就要先搭建起一个深度学习的学习平台,我们通常称其为开发环境,然而开发环境配置的复杂性却让很多初学者望而生畏。在这里,笔者将自己搭建深度学习环境的经验和大家一起分享交流,希望能够让刚入门深度学习的你不再畏惧环境搭建。我们将从最基础的显卡驱动安装开始,完成深度学习环境配置的全流程,文中还记录了一些安装过中新手最容易犯的错误以及一些避免踩坑的建议。相信看完本文,并经过多次不断的尝试,你就会深刻的理解深度学习环境搭建的那些事 ~~~

一、安装显卡驱动

1. 禁用nouveau

安装NVIDIA驱动前先禁用nouveau,否则会出现冲突 使用以下命令打开文件

sudo gedit /etc/modprobe.d/blacklist.conf

在文末添加以下两句话

blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
reboot    #重启

开机验证nouveau 禁用是否成功

lsmod | grep nouveau

如果什么都没有输出就说明禁用成功

2. 下载驱动文件并安装

查看显卡版本

lspci | grep -i nvidia

查看电脑适合的版本

sudo apt-cache search nvidia*
  1. 下载驱动文件 驱动官网地址:www.nvidia.cn/Download/in… 一般情况下载.run文件安装
  2. 进入命令行界面 按下Ctrl+alt+f1 登陆账户即可
  3. 关闭图形界面
 sudo service lightdm stop
  1. 卸载原有驱动
sudo apt remove nvidia-*  # --purge

如果使用以上命令卸载后运行nvidia-smi任然有显卡信息输出说明没有卸载成功,可使用以下方法卸载(使用runfile文件安装的驱动)

sudo sh ./NVIDIA-Linux-x86_64-xxx.run --uninstall
  1. 安装新驱动
sudo chmod  a+x NVIDIA-Linux-x86_64-xxx.run
sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files

-no-x-check:安装驱动时关闭X服务 -no-nouveau-check:安装驱动时禁用nouveau -no-opengl-files:只安装驱动文件,不安装OpenGL文件

  1. 安装完成后,开启图形界面
sudo service lightdm start
  1. 验证是否安装成功
nvidia-smi

3. 循环登陆问题解决

如果安装好之后出现循环登陆问题,请从第二步开始,卸载刚安装过的驱动,重新安装一遍(安装命令记得后面加参数),

如果不成,多试几遍,多多踩坑 

二、 安装cuda

1. 下载安装文件

developer.nvidia.com/cuda-toolki… 按照官方命令安装即可

sudo sh cuda_10.0.130_410.48_linux.run

注意:在安装过程中会询问一下东西,在问是否安装驱动时,如果前面已经安装过了,就选择否(最好是按前面的方法手动安装)

2. 设置环境变量,添加路径

sudo gedit ~/.bashrc

在文末添加一下信息

export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

激活环境

source ~/.bashrc 

3. ubuntu 安装多版本cuda,及切换版本方法

ubuntu 安装多版本cuda,及切换版本方法

1) ubuntu 安装多版本cuda,及切换版本方法

(1). 下载cuda developer.nvidia.com/cuda-toolki…

(2). 安装时选项介绍:

#先执行下面的命令安装相关依赖,
#否则会出现`Missing recommended library`错误
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 


sudo sh cuda_8.0.61_375.26_linux.run #开始安装


按q退出协议说明部分
yjq@Ubuntu: accept/decline/quit: accept  #接受协议

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 
y)es/(n)o/(q)uit: n  #是否显卡驱动包,由于已经安装显卡驱动,选择n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y #是否安装工具包,选择y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y #添加链接
注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选n,因为指定该链接后会将cuda指向这个新的版本

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: n #安装样例

Enter CUDA Samples Location
 [ default is /root ]:  #样例安装地址默认即可

===========
= Summary =
===========
Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /root, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.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-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.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 361.00 is required for CUDA 8.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_6388.log   
# over!!!

(3). 多版本切换

在安装了多个版本的cuda之后可以在/usr/local下看到已安装的多个版本,如:cuda-8.0 cuda-10.0等。 还会看到一个名为cuda的文件夹,这个文件夹为一个软链接,更改该软链接的指向就可以更改cuda的版本。

使用stat命令可以查看该软链接的指向是哪个版本的cuda

stat cuda

更换软连接指向(更换版本):

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda

2) 出现的问题记录:

error: command '/usr/local/cuda:/usr/local/cuda/bin/nv cc' failed with exit status 1\

解决:报错的路径里面多了一个冒号,说明是环境变量的设置有问题

sudo gedit ~/.bashrc

更改 export CUDA_HOME=$CUDA_HOME:/usr/local/cudaexport CUDA_HOME=/usr/local/cuda

nvcc --version 和cat version.txt 显示版本信息不一致问题:

解决:配置bashrc文件即可解决

三、安装cudnn

1.下载安装文件

cudnn下载 官网地址:developer.nvidia.com/rdp/cudnn-a…

注意:这里需要下载和cuda版本对应的文件

2. 安装cudnn

1). 解压下载文件

tar -xvf cudnn-10.0-linux-x64-xxx.tgz

2). 复制并给予权限

解压后是名为cuda的一个文件夹,执行以下命令

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

3). 查看cudnn版本

查看CUDA版本

方法一:

nvcc --version

or

nvcc -V

方法二:

cat /usr/local/cuda/version.txt
查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2