最近因为升级了Linux内核,导致之前安装的Nvidia driver崩溃,系统无法找到Nvidia driver。笔者索性重装了一遍系统,并因为对Ubuntu以及conda虚拟环境的不熟悉,导致尝试多次搭建深度学习环境失败,参考了数篇文章才得以搭建成功。编写此文的目的在于,总结此次搭建Pytorch环境所得到的经验教训,希望自己下次手贱把系统搞崩溃后再重装,能少走点弯路……
开机后进入BIOS,找到secure boot这一选项并关闭。这一步主要看各位主板厂商的BIOS设定。
首先,关闭软件自动更新,以后有提示更新也不要安装。
其次,更改ubuntu软件下载源,改为清华源,进settings -> Download from:
最后,在Additional Drivers里选择tested驱动程序:
安装完成后重启,再次进入桌面后打开terminal,输入指令'nvidia-smi',以检查是否成功安装英伟达显示驱动。
这里的cuda Version并不是指已经安装了cuda,而是指该驱动最高能支持的cuda版本下载网址:
Anaconda | Individual Editionwww.anaconda.com由于是Ubuntu,选择Linux 64-bit x86版本。我下载好的文件名为Anaconda3-2020.02-Linux-x86_64.sh,使用指令'bash Anaconda3-2020.02-Linux-x86_64.sh' 进行安装。
一路enter下去,最后选择yes,在进行到下图这一步(添加进系统路径)时,选择yes或者no都没什么问题,官方推荐yes:
这里选择no,(若反悔,需要yes,在安装完成后,Terminal里输入指令'source /home/__usr_name_/anaconda3/bin/activate'+'conda init' 即可)
配置conda需要vim,安装vim指令:'sudo apt-get install vim',需要输入系统密码:
配置conda环境变量,cd到系统根目录输入指令'sudo vim .bashrc',在.bashrc文件末尾添加如下几行:
# distinguish anaconda python with system built python
alias python3="/usr/bin/python3.6"
alias python2="/usr/bin/python2.7"
# add environmental variables
. /home/richardhu/anaconda3/etc/profile.d/conda.sh
编写完毕后,按esc+指令':wq!' 退出vim:
执行刚修改后的 .bashrc文档,输入指令'source .bashrc',再查看下创建的环境变量:'conda env list' :
由于是刚装的系统,目前只有base这个环境,下面会介绍如何创建虚拟环境。
conda是非常强大的python包管理器,可以在命令行自动检测环境所需要的包,以及是否需要更新python包,conda默认是从境外网站获取数据,可以更改到国内网站,提高连接速度。以更改清华源为例,输入指令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
以需要使用到pytorch进行图像识别为例,建立一个名为pytorch的虚拟环境。输入指令:'conda create -n pytorch python=3.7'
经过conda的分析后,一般会提示以下包需要安装,同意安装即可。
需要注意的是,base与pytorch这两个环境里的python version可以是不一样的,见下图。
python 3.7.6 in base python3.7.8 in pytorch env这就体现了虚拟环境的好处,我们可以根据自己的需要,安装特定版本的包以实现不同的项目需求。
需要注意,轻易不要使用指令'conda update --all',极易造成包与系统兼容性问题。
安装时需要注意以下几点:
3. cuDNN与cuda版本有对应,下载时需注意。
一、查看gcc version:
输入指令 'gcc --version'
二、安装cuda:
获取cuda包并安装,官方有说明:
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocaldeveloper.nvidia.com由于官网指令推荐安装cuda-11.0,不采用之,需自己寻找相应的cuda-10.x包,这里以我自己下的cuda-10.1.run文件为例。
在存储cuda的文件夹里打开Terminal,输入指令'sudo sh cuda_10.1.105_418.39_linux.run'
输入密码后等待片刻,便可进入安装界面如下:
输入accept后便来到安装组件选择,由于之前已经安装过Nvidia Driver,这里取消勾选:
安装成功后的界面如下:
cd到根目录,输入指令'sudo vim ~/.bashrc',为cuda配置环境变量
在 .bashrc 里输入如下指令:
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
输入完毕后,esc + ':wq!' 退出vim
关机重启后,打开terminal,输入指令'nvcc -V' 以检查cuda是否安装成功。
三、安装cuDNN:
下载地址:
https://developer.nvidia.com/cudnndeveloper.nvidia.com这里以cuDNN-8.3版本为例,下载好的文件类型为.tgz。
在存放cuDNN的文件夹打开terminal,输入指令'tar xzvf cudnn-10.1-linux-x64-v8.0.3.33.tgz' 以解压文件。
解压完成后,继续输入指令如下:
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h /usr/local/cuda-10.1/lib64/libcudnn*
目的是将cudnn的include和lib64文件夹复制到cuda中。
输入指令'conda install pytorch=1.5 torchvision cudatoolkit=10.1 -c pytorch'
需要注意的是,你极有可能从清华源或者其他源获得的版本是Pytorch build for CPU,
一定要检查pytorch build for GPU,检查方法如下:
3. 输入代码:
import
如果输出的结果为false,则表示pytorch无法使用GPU资源进行运算,需要自寻方法解决。
如果输出的结果为true,则表示pytorch build for GPU搭建成功。
Pycharm是一款来自JetBrains公司的强大的Python IDE,它可以为每个创建的project调用指定的conda虚拟环境(如上文创建的名为pytorch虚拟环境)python解释器。下载地址如下:
Download PyCharm: Python IDE for Professional Developers by JetBrainswww.jetbrains.com由于已事先准备好pycharm安装包,以此为例,在存储路径打开terminal,输入指令'tar xzvf pycharm-community-2020.1.4.tar.gz'
解压完成后,继续输入指令'cd pycharm-community-2020.1.4/bin/' +'sh pycharm.sh' 即可打开pycharm。
在经过一些初始化设定后,进入settings -> project ____ -> Python Interpreter
点击右边的小齿轮⚙,进入add Python Interpreter -> conda environment -> existing environment,选择你创建好的conda 虚拟环境。
至此,所有必要步骤已全部结束。
在Ubuntu 18.04版本上搭建基于Pytorch框架的深度学习环境,需要经历以下步骤:
本文参考了众多网络教程,也算是踩了n多坑,记下此文以待后日需要。