由于效率不是很高也嫌麻烦,已经很久没有写过博客了。不过老师还是希望我每做一件事情就记录一点,一方面是帮助理解,另一方面也是方便自己和他人。同时我也认为记录工作变得很重要,之前其实做了很多事情,但过了一段时间发现没有什么能拿得出手的,并不是工作完全没有价值,而是关于工作的记录太少。因此从这篇博客开始,我也尝试着要把我所做的工作尽可能地记录下来,也算是给自己枯燥的生活留下一点纪念吧。
这篇博客主要记录前两天的一点工作,包括给服务器安装NVIDIA驱动,CUDA,cuDNN和Tensorflow等软件。相对于Ubuntu16.04来说,18.04的不同之处在于安装NVIDIA驱动的时候不用手动安装了,本文使用的也是推荐的做法是添加ppa仓库直接安装最新版本的驱动。这样做的好处在于方便安全,在不需要禁用Ubuntu内置的nouveau驱动的情况下即可自动完成NVIDIA驱动的安装,不用担心那些以前安装NVIDIA驱动容易遇到的问题,如无法启动,循环登录等等。在安装完NVIDIA驱动后,可直接下载CUDA和cuDNN进行安装,需要注意的是不需要安装CUDA集成的驱动。在NVIDIA套件安装完成后,配置好环境变量即可安装Anaconda3,继而创建虚拟环境安装所需的深度学习框架。本文安装的是TensorFlow,当然PyTorch的安装也是类似的,我会在最后简单讲一下。废话少说,那么开始进入正题吧。
在安装好Ubuntu18.04系统后,首先Ctrl+Alt+T
进入终端,执行命令sudo apt-get update
更新软件源列表,接着执行命令sudo add-apt-repository ppa:graphics-drivers
添加ppa仓库,然后再执行sudo apt-get update
。在添加好ppa仓库后,可使用sudo apt-cache search nvidia
或者ubuntu-drivers devices
命令查看可安装的NVIDIA驱动版本。其中后一条命令还会给出当前显卡推荐的显卡驱动版本。在安装驱动之前,如果已经安装过NVIDIA驱动,那么可使用命令sudo apt-get remove --purge nvidia*
先行卸载。确定要安装的驱动程序版本后,即可使用命令sudo apt-get install nvidia-driver-440
进行安装,440是我安装驱动的时候最新的版本。如果不想麻烦,也可以使用命令sudo ubuntu-drivers autoinstall
自动安装推荐的NVIDIA驱动版本。在等待大约十分钟后安装完毕,执行命令sudo reboot
重启电脑,进入终端执行命令nvidia-smi
验证驱动是否安装成功。一般情况下安装是会成功的,但如果不成功也不要着急。重启后失败则Ctrl+Alt+F1
进入终端,使用命令sudo apt-get remove --purge nvidia*
卸载掉NVIDIA驱动再重新安装即可。
在装好NVIDIA驱动后,即可安装CUDA+cuDNN。首先到CUDA官网去下载需要的CUDA版本,一般选择下载.run格式的本地安装包。我要安装的是Tensorflow1.15.0版本,官方指定的CUDA版本为10.0,对应的下载地址是CUDA10.0,同时去cuDNN官网下载CUDA对应的cuDNN版本,下载期间会需要登录,但可以直接用QQ或者微信登录以节省注册的时间。CUDA10.0对应的cuDNN版本为7.6.5,下载地址为CUDA7.6.5,下载页面如下所示:
下载好CUDA和cuDNN后,安装就比较简单了。首先安装CUDA,使用命令sudo sh cuda_10.0.130_410.48_linux.run
进行安装,唯一需要注意的是不要选择安装驱动的选项即可,其它可都按照默认选项安装。安装完毕后在/usr/local/
目录下能找到名为cuda-10.0
的安装目录以及一个名为cuda
的软链接文件,这个文件指向cuda-10.0
文件夹。接着需要做的就是添加环境变量,即执行命令vi .bashrc
,在文件的末尾添加两行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后:wq
保存再执行命令source .bashrc
,接着添加路径/usr/local/cuda/lib64
到/etc/ld.so.conf.d/cuda.conf
文件中,如果文件不存在可自己创建,最后执行命令sudo ldconfig
完成路径配置。这里推荐使用cuda
软链接而不是cuda-10.0
的路径,因为我们通常会在一台机器上安装多个CUDA版本,用软件链接可以方便使用,只需在使用前修改软链接的指向即能完成版本切换,而不需要每次都去修改环境变量。CUDA安装完成后进入存放cuDNN的文件夹下,首先执行解压命令tar -zxvf cudnn-10.0-linux-x64-v7.6.5.tgz
,然后进入解压后的文件夹,依次执行命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp -P cuda/lib64/* /usr/local/cuda/lib64/
复制里面的cuda/include/cudnn.h
到/usr/local/cuda/include/
文件夹下,以及复制cuda/lib64/
下的所有文件到/usr/local/cuda/lib64/
文件夹下,其中-P
选项指示复制时保留软链接。至此CUDA+cuDNN已全部安装完成。
Anaconda3目前几乎已是深度学习的必备软件之一,它的特点主要在于Python虚拟环境以及conda包管理工具。Anaconda3的版本选择主要取决于用户需要什么版本的内置Python,但由于可以创建虚拟环境从而使用不同的Python版本,这个也就变得不那么重要了,一般下载对应平台的最新版本安装包即可。安装Anaconda3,首先到Anaconda3下载地址下载安装包,下载页面如下所示:
如果用户想使用以前的版本,比如我就倾向于安装内置Python3.6的Anaconda3-5.0.1版本,可到Anaconda清华镜像源去下载各个版本的安装包。下载完成后,打开终端进入安装包所在文件夹,执行命令sudo sh anaconda3-5.0.1-python3.6-linux-x86_64.sh
进行安装,安装过程中直接使用默认值就好,在最后会提示是否添加Anaconda3的路径到.bashrc
,选择yes
软件会自动添加环境变量,最后安装完成。
安装好Anaconda3后,首先需要做的事情是添加国内的软件源,这里推荐的是清华镜像源。添加的步骤为,打开终端,依次执行命令:
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 --remove channels defaults
conda config --set show_channel_urls yes
即完成镜像源的添加,其中第三条命令移除了Anaconda3的默认下载通道,这是推荐的做法,因为如果软件选择它作为下载通道,那么下载将是很漫长痛苦的事情。镜像源配置好后,就可以执行命令conda create -n tensorflow-1.15 python==3.6.6
创建自己的虚拟环境了,这里tensorflow-1.15
是需要创建的虚拟环境名,python==3.6.6
用于指定安装的Python版本,执行后在Anaconda3的安装目录下的envs
文件夹下可看到对应的虚拟环境名文件夹。
在虚拟环境创建后,执行命令source activate tensorflow-1.15
切换到虚拟环境(要退出则执行source deactivate
),然后执行命令conda install pip
安装pip软件包下载工具,安装完成后记得执行命令python -m pip install --upgrade pip
更新pip到最新版本。由于pip的国外源下载一般非常慢,在安装完之后也需要对pip进行国内软件源配置,即执行命令cd
切换到用户文件夹下,接着执行命令mkdir .pip
创建.pip文件夹,然后进入文件夹执行命令vi pip.conf
编辑文件,添加如下内容(Windows系统则是在C:\Users\xxx
用户文件夹下创建pip
文件夹,再创建pip.ini配置文件,文件的内容不变):
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
至此,安装TensorFlow-GPU的准备工作就已经完成,接下来只需简单的步骤即可完成TensorFlow的安装。
在准备好以上环境后,安装TensorFlow只需在虚拟环境中执行命令pip install tensorflow-gpu==1.15
即可,其中1.15
是我需要安装的版本(如果需要安装CPU版本,则执行命令pip install tensorflow==1.15
)。在网络不好的情况下,使用pip安装可能会经常出现断线的情况,即使配置了国内源也一样。因此可行的做法是先执行安装命令,如果失败或者过于缓慢则复制终端上显示的URL到浏览器或者其它可续传且下载速度快的软件上下载,下载完成后再执行命令pip install xxx.whl
离线安装。安装完成后可进行简单的测试,即输入python
命令打开Python解释器,依次输入如下:
import tensorflow as tf
print(tf.__version__)
sess=tf.Session()
sess.close()
如果没有出现如库加载失败,无法找到TensorFlow模块等错误,且有显示机器的GPU等信息,那么表明TensorFlow已经安装完成。
目前TensorFlow依然是工业界的深度学习框架首选,然而在学术界PyTorch才是最受欢迎的深度学习框架。PyTorch相较于TensorFlow来说更加简洁。虽然性能方面不及TensorFlow,但可以快速地复现思想,因此深受学术界青睐。安装PyTorch也是较为简单的,只需到PyTorch官网选择需要的版本下载即可,下载界面如下:
可以看到,官网的下载页面有给出下载的命令,直接执行如上面的pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
,即可完成PyTorch最新版本的安装。如果用户需要安装以前的版本,也可到PyTorch旧版本下载地址下载,具体的下载命令也都有给出。要注意的是CUDA的版本匹配问题,例如上面的PyTorch1.5.0版本需要CUDA10.1或者10.2版本对应,而我前面安装的是CUDA10.0,因此如果要安装PyTorch1.5.0的话还需要再安装其它的CUDA版本。
花了一两个小时,记录了最近两天安装深度学习软件的过程。虽然没有多少价值,但也是个人积累的一部分。写完发现还是有点意思,以后应该会经常写一些博客记录下一些工作,这的确是个好习惯,需要坚持下去。今天就这样吧,改天再续。