Ubuntu20.04配置Pytorch+OpenMMLab环境过程步骤札记

Ubuntu20.04配置Pytorch+OpenMMLab环境过程步骤札记

  • 安装NVIDIA显卡驱动

确保电脑已连接网络后,点击打开Ubuntu自带的软件更新Software Updater后,点击左下角的Settings进入设置界面,在弹出的对话框中点击选择Additional Drivers选项卡,一般情况下联网后会自动搜索更新可用的NVDIA驱动,选择一个点击右下角Apply Changes等一会儿就OK了。

PS.我选的是Using NVIDIA driver metapackage from nvidia-driver-525(proprietary),我电脑配的显卡是NVIDIA RTX A5000。

此时遇到了configurling secure boot 的弹窗。根据提示新设置一个验证密码:12345678(并非系统的登陆密码),之后终端输入指令reboot 重启电脑。

在未完全开机时会显示出:Continue boot、Enroll MDK、Enroll key from disk、Enroll hash from disk选项,这时需要选择第二个选项Enroll MDK后,输入刚才新设置的密码(输入的密码不会显示出来),然后在新出现的选项中选择Continue boot继续开机即可完成安装。

安装完之后在终端输入nvidia-smi后,如果安装成功则会输出类似下图的显卡信息:

其中,CUDA Version:12.0表示当前显卡所能支持的CUDA最高版本为12.0。由于后续要安装的Pytorch目前官网发布的版本所能支持的CUDA版本是11.8,因此下一步CUDA选择的就是11.8的版本进行安装。

  • 安装CUDA-11.8 Toolkit

1、在安装CUDA之前,先在终端输入如下命令安装一些常见的依赖库:

sudo apt install git gcc g++ ffmpeg cmake make python3-dev python3-numpy libavcodec-dev libavformat-dev libswscale-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-3-dev libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev

2、登陆NVIDIA官网:https://developer.nvidia.com/cuda-downloads

此时需要先点击页面右下方的Archive of Previous CUDA Releases按钮进入低版本CUDA下载界面,在弹出页面中点击CUDA 11.8.0选项后,在出现的相应界面中根据自己的平台情况进行相应选择后,页面下方会自动给出对应的安装文件的下载的终端操作命令(我选择的是runfile local形式下载),如下图所示。

 因此需要打开终端依次输入如下命令:

下载安装文件命令:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

执行安装文件进行安装命令:

sudo sh cuda_11.8.0_520.61.05_linux.run

之后就会进入CUDA的安装界面,依次选择continue、输入accept、敲回车取消第一项Driver的选择(即中括号里没有X)后选择install即可开始安装。

3、安装完毕后,则需配置CUDA环境变量,在终端输入gedit ~/.bashrc后,在弹出的系统环境变量配置文件的末尾添加输入如下语句:

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

标红部分为我安装的CUDA相应的bin和lib64所在的路径,其他部分都不需要变化。保存刚才的输入之后,终端再输入source ~/.bashrc更新环境变量。

4、验证CUDA是否安装成功,终端输入nvcc -V后若得到类似如下输出,则说明安装成功。

  • 安装CuDNN

首先进入Nvidia官网选择对应安装好的CUDA版本的CuDNN安装包(在此之前一般还要走一个CuDNN账号的注册手续才会让你下载)。我选择的是Local Installer for Linux x86_64 (Tar)。

下载完成后,依次输入下列命令进行压缩包解压。

tar -zxvf cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz

进入解压得到的文件夹后再输入如下命令, 将其中的include和lib64文件夹及其所包含文件复制到cuda相应的安装路径下,并修改读写权限即可。

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*

最后输入nvcc -V命令,若返回如下结果,则说明CuDNN安装成功。

PS.安装完显卡相关的软件工具包后,千万不要手贱去点击Soft Updater给你推送的系统自动更新,其中如果有更新到系统内核相关的部分,将可能会导致与已安装的显卡相关的软件依赖发生冲突,从而导致重启后无法正常进入Ubuntu系统。当然如果确实出了问题,网上也有相关博主写过相关解决的帖子。但是可能不一定能针对所有人的电脑都普适,所以还是尽量别去主动创造问题了。(我就手抖点了更新,重启之后进入系统之前就一直黑屏,左上角一个小短划线在不停闪烁。并且试了很多网上的方法,很多细节都对不上也处理不了。还好再重启了一次就神奇地恢复了。但是很明显进入系统的时间比原来长了......)

  • 安装Anaconda环境

我安装的是轻量级的miniconda版本,在终端依次输入如下命令即可:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

sh Miniconda3-latest-Linux-x86_64.sh  #执行安装文件

sudo rm Miniconda3-latest-Linux-x86_64.sh  #删除安装文件

conda update -n base -c defaults conda

安装完成后终端输入export PATH=/home/zyj/miniconda3/bin:$PATH,标红部分为miniconda3中bin文件夹的路径,保存退出之后终端输入source ~/.bashrc更新环境变量即可。

  • 安装Pytorch(Anaconda环境下)

首先更新软件源,主要是看网上说有些安装包、依赖库的默认源是国外的,下载速度会巨慢,所以更新设置了采用清华镜像的软件源,具体需在终端依次输入如下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

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/cloud/msys2/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

之后终端会有如下输出,说明添加清华镜像软件源成功。

在Anaconda下创建虚拟环境安装Pytorch,主用户环境下安装的依赖库可以为虚拟环境所用。但在虚拟环境中安装的依赖则无法为主用户环境所用。但好处是一旦安装出现错误无法挽回,可以直接删除创建的虚拟环境重头再来(别问我是怎么知道的,说多了都是泪),而不会影响主用户环境。再就是可以创建多个虚拟环境,安装不同版本的依赖库和软件包以迎合不同算法对版本的要求。

这里我主要为了安装pytorch,创建了一个python3.7的虚拟环境,以pytorch命名。具体调用Anaconda的命令为:

conda create -n pytorch python=3.7

此时就创建了一个名为pytorch的虚拟环境,接下来需要激活该环境并在此环境下安装pytorch,具体终端命令为:

conda activate pytorch

此时命令行最前端就会出现(pytorch)字样,说明此时已进入所创建的pytorch虚拟环境中。

如果想推出虚拟环境回到主用户环境,则可以调用如下命令:

conda deactivate或者conda activate root

此时命令行最前端就会出现(base)字样,说明此时已进入主用户环境。

如果想要删除所创建的虚拟环境从头再来,则可以输入以下命令:

conda remove -n pytorch --all

标红部分为待删除的虚拟环境名。

下面开始安装pytorch,首先进入pytorch主页https://pytorch.org/,根据平台以及所安装的CUDA版本等进行相应的选择,主页会自动给你生成相应要安装的pytorch版本的终端命令行代码。

照理我应该选择CUDA11.8的版本,但是试了很多办法,也还只是能安装cpu版的pytorch,网上说原因是软件源用的是清华镜像,而清华镜像可能还没有对应CUDA11.8的pytorch GPU版本。后面也试过使用默认软件源安装,但是下载速度巨慢,并且就算等到最后还是无法检测到GPU版本的pytorch。网上大神也分析了其他原因,但是看着太复杂了。已然超出我的大脑负荷和耐心极限。

因此退而求其次,试着安装对应低版本CUDA11.7的pytorch,通过查询pytorch主页https://pytorch.org/get-started/previous-versions/,相应给出的安装命令为:

conda方式安装:conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7

pip方式安装: pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

使用pip安装时请确保环境中已安装pip,如果安装后pip报错不行,还可以更新下软件源,即输入sudo apt update、sudo apt upgrade再pip试试,再不行可以安装更新pip3再试试,安装pip3的命令为(sudo apt-get install python3-pip)。我反正就是这么折腾过来之后成功的哈哈哈。

另外,原始pytorch主页给出的conda安装命令其实后面还带有-c pytorch -c nvidia字样,但是网上说由于我们用的清华镜像,所以这几个字样要删去。否则就还是按照默认源龟速下载。不过反正我用的是pip下载,不存在这个问题哈哈哈。

之后就是耐心等待安装完成了。之后进入python,输入以下代码:

import torch

torch.cuda.is_available()

如果返回结果为True,则说明GPU版本的pytorch安装成功了!

输入torch.__version__(注意 version左右两边是两根短下划线)之后回车也可看到对应安装的pytorch版本信息的输出:

  • 安装OpenMMLab相关软件环境(Anaconda环境下)

进入主页https://openmmlab.com/codebase,可以看到有很多开源智能感知算法库,几乎涵盖了目前绝大多数智能感知任务以及主流的算法模型实现。可以选择感兴趣的算法软件包进行对应安装。点击相应的选项卡(那个像书签一样的小图标)即可进入对于算法软件的主页,基本上根据其中关于使用安装的指引即可。这里以MMSelfSup(自监督学习算法库)为例,对安装过程步骤进行记录。

进入MMSelfSup最新主页https://mmselfsup.readthedocs.io/en/dev-1.x/get_started.html,先看其前置的环境依赖版本要求如下:

MMSelfSup works on Linux (Windows and macOS are not officially supported). It requires Python 3.7+, CUDA 9.2+ and PyTorch 1.6+.

还好,我电脑安装的相关软件环境都符合要求。因此可以激活虚拟环境直接开始相关安装:

conda activate pytorch

pip install -U openmim(安装算法软件库的专门下载工具MIM)

mim install mmengine

mim install 'mmcv>=2.0.0rc1'(安装基础环境MMCV、MMEngine)

之后就可以输入如下命令进行MMSelfSup软件包的完全安装:

git clone https://github.com/open-mmlab/mmselfsup.git

cd mmselfsup

pip install -v -e .(注意这里e的后面还有一个点!)

等待安装完成,进入python环境输入如下代码:

import mmselfsup

print(mmselfsup.__version__)(注意 version左右两边是两根短下划线)

如果终端能够正常输出相应的版本信息,则说明安装成功。

我在安装的过程中出现的问题,主要是来源于更加基础的依赖库安装不全,主要包括opencv-python、scikit-learn、matplotlib、protobuf等,通过conda、pip或pip3的安装,输入如下命令后再重复MMSelfSup的安装过程,就OK了。这里注意,不要用sudo安装,因此这样一来会把依赖库安装到主用户环境,虚拟环境中无法找到,从而会不起作用!

pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple

pip install scikit-learn

conda install protobuf

pip install matplotlib

pip install matplotlib --upgrade(有可能会需要调用安装更新版本的命令)

OpenMMLab的其他软件包的安装也大同小异,提醒一下的要注意用最新版本的说明文档进行安装,有时候点进去的可能是老版本的documentation。一般在主页靠上的地方会有最新版本的跳转链接。

  • 结语

整个安装配置过程相对漫长,中间出了不少问题也参考了很多大神的相关部分博客,多到记不过来,所以没有一一在最后给出引用,还请大神们多多包涵(狗头保命.jpg),感谢大神们的帖子帮我解决了各种疑难杂症,让我少走弯路,谢谢×10086!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值