ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度学习的环境

  • 引言
  • 1.ubuntu20.04搭建ros noetic环境
  • 2.ubuntu20.04环境下yolov5的环境配置
  • 2.1对应的显卡驱动
  • 2.2对应的CUDA
  • 2.3对应的cudnn
  • 2.4对应的anaconda
  • 2.5对应的pytorch


引言

这里介绍下本篇文章的目的,为了方便自己日后在其他主机上搭建环境,也为了帮助遇到相同问题的人。本篇文章主要是解决ubuntu20.04搭建机械臂视觉抓取的环境部署问题。第一个环境了ROS环境,第二个环境是深度学习yolov5的环境。

1.ubuntu20.04搭建ros noetic环境

这里推荐鱼香ros的便携式安装方法,这里感谢鱼香ros作者,真的是大大减少了ros环境安装的工作量。直接复制粘贴下面这条指令,然后根据指令来安装ros noetic就行了,非常的省心。

wget http://fishros.com/install -O fishros && . fishros

ros pytorh强化学习 ros和pytorch_深度学习

2.ubuntu20.04环境下yolov5的环境配置

这里,先理一下思路。要在ubuntu20.04下运行yolov5。需要的条件有哪些:

1.对应的显卡驱动
2.对应的cuda
3.对应的cudnn
4.对应的anaconda
5.对应的pytorch

2.1对应的显卡驱动

(1)安装前需要的依赖

sudo apt-get update #更新软件列表
#安装编译依赖
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make

(2)查看电脑主机的GPU型号

lspci | grep -Ei '(vga|display)' 
或者 
lspci | grep -i nvidia 
或者 
lspci | grep -i vga

这里显示了ubuntu下我GPU的型号是2208

ros pytorh强化学习 ros和pytorch_python_02


然后,我们打开这个网址链接,《GPU型号查询网址链接: link

将2208输入到JUMP左边的方框里,就得到了电脑主机的GPU型号。

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_03


当然,如果事先知道GPU型号的可以忽略此步骤。(3)Nvidia官网下载适配版本的驱动

Nvidia驱动下载链接: link 打开链接地址后,根据GPU型号下载对应的NVIDIA驱动程序,选好之后点击搜索,弹出窗口进入下一步,确认无误后点击下载。这就把nvidia驱动程序下载好了。

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_04


ros pytorh强化学习 ros和pytorch_python_05

(4)删除之前安装过的与NVIDIA相关的内容,确保初始环境的干净

sudo apt-get remove --purge nvidia*

(5)禁用nouveau
原因:nouveau是ubuntu系统的驱动程序,在安装nvidia驱动前需要将nouveau给禁用,这样才不会影响nvidia的正常工作。通过如下指令打开blacklist文件。

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

在blacklist文件的末端加上如下两句代码,保存并退出。

blacklist nouveau
options nouveau modeset=0

(6)环境更新,并重启电脑

sudo update-initramfs -u
# 然后电脑重启系统
sudo reboot

重启完电脑后,终端中输入下面指令,如果没有输出,则代表nouveau已经被禁用了。

lsmod | grep nouveau

(7)安装nvidia驱动

这里建议在主目录下(也就是home下)创建个空文件夹,(这里我自定义的文件夹a1)把刚才下载的nvidia驱动文件放在这个空文件下,这样待会比较容易找到该nvidia驱动文件。

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_06


终端输入如下指令,进行nvidia驱动的配置。

sudo telinit 3

进入到配置界面。这里login就写ubuntu系统的用户名 password就是登录ubuntu的密码。

ros pytorh强化学习 ros和pytorch_python_07


然后就是输入下列指令,等系统提示Stopping gdm3.

sudo /etc/init.d/gdm3 stop

然后输入指令ls,查看当前的位置,我们的目的是通过cd指令,将其移动到之前装有nvidia驱动文件的文件夹下。

当找到nvidia文件后,便执行下面两条指令。

sudo chmod 777 NVIDIA-Linux-x86_64-*.run   #给你下载的驱动赋予可执行权限,才可以安装
sudo ./NVIDIA-Linux-x86_64-*.run –no-opengl-files   #安装

之后系统就会自己执行了。遇到要做选择的。默认yes就可以了。
最后,安装完成后,输入下列指令让ubuntu重启下就大功告成了。

sudo service gdm3 start

(8)nvidia驱动安装完成效果图
输入下面指令,查看nvidia的Driver API。

nvidia-smi

!!!!注意,这里显示的CUDA Version12.0指的是此主机最大可兼容的版本。既不代表主机已经安装好cuda的意思,也不代表当前cuda版本的意思。

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_08

2.2对应的CUDA

根据2.1小节的信息已经知道了此主机适配的cuda版本不得超过12,这里我们选择的版本是11.6
(1)cuda卸载,保证安装前的环境干净

sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" 
sudo apt-get autoremove

(2)下载cuda文件

cuda下载的链接: link 这里选择CUDA Toolkit 11.6.0 (January 2022), Versioned Online Documentation这个版本

ros pytorh强化学习 ros和pytorch_ubuntu_09


这里选择Linux -> X86_64 -> Ubuntu -> 20.04 -> runfile(local)

然后就会提供下列两行指令。

ros pytorh强化学习 ros和pytorch_python_10


先别急,在安装cuda11.6之前先安装一些依赖的库文件,指令如下

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

然后将上图中出现的两条指令在终端中输入。

wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run

运行上面的指令后,会弹出如下指令。这里键盘输入accept

ros pytorh强化学习 ros和pytorch_深度学习_11

接着还有个需要注意的地方,在下一个界面这里。利用键盘的空格键将Driver这个选项搞空掉,然后上下键控制光标到Install这里,键盘回车就可以了。

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_12


(3)配置cuda环境

通过如下指令,打开bashrc文件。

sudo gedit ~/.bashrc

在bashrc文件内最低端复制粘贴上如下指令,并保存退出就完事了。

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

ros pytorh强化学习 ros和pytorch_ros pytorh强化学习_13


(4)验证cuda安装是否成功

打开终端,输入如下指令,查看cuda的runtime API。当发现版本为11.6时,则表明cuda已经成功安装了。

nvcc -V

ros pytorh强化学习 ros和pytorch_python_14

2.3对应的cudnn

(1)下载cudnn

cudnn的网址链接: link 需要注意,cudnn下载需要邮箱注册个帐号,这里问题不大,应该都会的,就不讲了。

接下来,选择cudnn版本。 这里点击Archived cuDNN Releases这个地方,跳转到新界面。选择适合cuda11.6版本的cudnn。

ros pytorh强化学习 ros和pytorch_ubuntu_15


第一步选择Download cuDNN v8.4.1 (May 27th, 2022), for CUDA 11.x

第二部选择Local Installer for Linux x86_64 (Tar)

然后就等待文件下载完成就好了。

ros pytorh强化学习 ros和pytorch_python_16

(2)配置cudnn
打开存放cudnn文件的文件夹,一般都存放在下载这里,对cudnn进行解压。
然后对cudnn文件里的两类文件cudnn.h libcudnn复制到新的文件夹下就可以了。
可以直接到cudn文件夹下打开终端进行操作。因为usr文件都需要管理员身份才能进行操作。所以需要用sudo.

tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 

sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 

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

(3)检查cudnn
cuda-11.6代表着我下载的cuda版本是11.6。.根据下载的cuda版本进行改动就可以进行cudnn检测了。

cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

ros pytorh强化学习 ros和pytorch_深度学习_17

2.4对应的anaconda

(1)下载anaconda

这里先放出anaconda下载的链接: link 再贴上下载的anaconda版本

ros pytorh强化学习 ros和pytorch_python_18


接着在anaconda文件所处的文件中打开终端,输入指令

bash Anaconda3-2021.11-Linux-x86_64.sh

之后就是一直选择yes就可以了。

(2)配置anaconda
通过如下指令,打开bashrc文件。

sudo gedit ~/.bashrc

在bashrc文件最低端添加下列指令。其中/home/--------的四段绿色指令为每台主机存放conda,conda.sh,bin文件的地址。记得输入正确。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/linuxize/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/linuxize/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/linuxize/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/linuxize/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

(3)检测anaconda
打开终端后先启动anaconda环境,再输入python

source ~/anaconda3/bin/activate

python

ros pytorh强化学习 ros和pytorch_python_19

为了简单起见,同时也为了anaconda不与ros系统其冲突。
在bashrc文件里进行配置。通过如下指令,打开bashrc文件。

sudo gedit ~/.bashrc

通过conda deactivate设置默认anaconda为关闭状态。当需要使用anaconda时候就输入指令start_anaconda 使用指令close_anaconda关闭anaconda。指令torch则开辟名为mytorch虚拟环境。

alias torch='source activate mytorch'
alias start_anaconda='source ~/anaconda3/bin/activate'
alias close_anaconda='conda deactivate'
conda deactivate

2.5对应的pytorch

当我们配置好了驱动,cuda,cudnn,anaconda后,才来配置pytorch。

这里贴上pytorch的链接: link 这里选择的pytorch版本为v1.12.0。它这边在Linux and Window这里支持CUDA 11.6版本。所以我们选择它。

ros pytorh强化学习 ros和pytorch_ubuntu_20


(1)创建虚拟环境

conda create -n mytorch python=3.8

(2)激活虚拟环境,环境名为mytorch

conda activate mytorch

(3)创建pytorch环境(v1.12.0),对应上图

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge

(4)检查pytorch是否成功

import torch
import torchvision

# 该指令显示pytorch版本
print(torch.__version__)

# 若cuda已安装,将显示true
torch.cuda.is_available()

(5)anaconda虚拟环境相关指令

# 创建新的环境
conda create -n mytorch python==3.8
# 激活环境
conda activate mytorch
# 删除环境
conda remove -n mytorch --all
# 退出当前环境
conda deactivate
# 查看有那些虚拟环境
conda env list
# 查看有某个虚拟环境有那些包
conda list