【环境配置】Ubuntu深度学习环境配置全流程

前言

由于经常需要在新机器上配置环境,所以索性记录下来,后续有内容也会慢慢补充
下面是自己的开发环境配置流程,主要是围绕基于 Pytorch 框架开发的目标检测算法的相关环境配置

提示:
除了第一个部分:‘‘Ubuntu基础开发环境配置’’之外,不是每个大模块都必须配置,可以根据实际需求进行配置
如果跟着流程全配置好了,基本上深度学习的开发环境后续均不用再次配置

注:以下内容仅供大家参考

一、 Ubuntu 基础开发环境配置


1.1 nvidia显卡驱动配置

首先先确保自己的显卡是nvidia,并且是独立显卡

  1. 查看电脑显卡型号

先终端输入以下命令,查看是否已经安装显卡驱动,若有信息输出则无需安装显卡驱动

nvidia-smi

若不知道自己显卡型号,可以通过以下命令查看显卡的代号

lspci | grep -i vga

PCI 网址
通过输入终端显示的编号到下面PCI 网址的窗口,即可获得具体显卡的型号

在这里插入图片描述

  1. 禁用原本驱动

禁用原本驱动的步骤可以参考其他博客

使用以下命令验证是否完成禁用(没有输出则表示成功禁用):

lsmod | grep nouveau
  1. 下载对应nvidia驱动

nvidia驱动网址
根据已知的显卡型号,选择对应显卡型号的驱动点击下载

在这里插入图片描述

1.2 CUDA以及cuDnn配置

  1. 查看现有cuda版本
nvcc -V

若无,则继续以下安装步骤;若有输出信息则跳到cuDnn的配置

  1. 去官网下载对应CUDA
    CUDA Toolkit Archive
    在这里插入图片描述
    需要注意这里下载的版本不能大于上面命令nvidia-smi显示的CUDA Version
    (作者这里为12.4,也就是一会下载的cuda版本不能大于12.4)
    在这里插入图片描述
    查看是否存在已安装的驱动版本
ls /usr/src | grep nvidia

若无其他输出,则继续安装

查看ubuntu版本

lsb_release -a

确定了当前ubuntu版本,则可以选择安装方式,安装方式有两种:一种是deb,一种是run

方法一:使用下面base installer的命令安装cuda(这里选择用deb的方式安装)
在这里插入图片描述

安装报错:
在这里插入图片描述

如遇到nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
建议重装nvidia驱动

方法二:使用run文件安装
由于上面deb文件安装经常报错,因此改为run文件安装:

下载…
在这里插入图片描述
给文件权限并运行run文件(这里选择使用run文件安装)

chmod 777 ./cuda_xxxx_linux.run
sudo ./cuda_xxxxxx_linux.run

选择continue
在这里插入图片描述

输入accept
在这里插入图片描述

在选择勾选的时候,注意需要把nvidia驱动的选项去掉,因为前面已经手动安装了nvidia的驱动,这里不需要安装
在这里插入图片描述

运行需要一段时间,漫长的等待后…
如输出以下信息则表示成功安装cuda
在这里插入图片描述

  1. 配置CUDA环境
  • 用vim编辑器打开.bashrc
sudo vim ~/.bashrc
  • 在最后添加以下路径
export PATH=/usr/local/cuda-11.x/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.x/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 最后激活一下
source ~/.bashrc 
  • 验证
nvcc -V

若输出以下信息表示安装成功
在这里插入图片描述

  1. 配置cuDNN
  • 去官网下载CUDA版本对应的cudnn
    cuDNN Archive
    在这里插入图片描述
    选择tar格式
    在这里插入图片描述
  • 使用以下命令,复制所需文件到cuda文件夹里面,并赋予权限
sudo cp cudnn-xxxxxxxxx/include/cudnn* /usr/local/cuda-11.x/include
sudo cp -P cudnn-xxxxxxxxx/lib/libcudnn* /usr/local/cuda-11.x/lib64
sudo chmod a+r /usr/local/cuda-11.x/include/cudnn*.h /usr/local/cuda-11.x/lib64/libcudnn*

验证

cat /usr/local/cuda-11.x/include/cudnn.h | grep CUDNN_MAJOR -A 2

若上述验证命令没有反应,尝试下面

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

若输出以下信息,则成功,表示安装的版本为8.9.0
在这里插入图片描述

如果需要重装CUDA、cuDnn则需要卸载干净原有的版本!!!
卸载流程如下:

  1. 卸载CUDA
cd /usr/local/cuda-xx.x/bin
sudo ./cuda-uninstaller 
sudo rm -rf /usr/local/cuda-xx.x
  1. 删除cudnn
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
  1. 验证
nvcc -V

如果输出以下信息则成功
在这里插入图片描述

1.3 Conda配置

  1. 去官网下载linux版本
    anaconda
    在这里插入图片描述
  2. 安装Anaconda
bash ./Anaconda3-xxxx-Linux-x86_64.sh 

一路enter,遇到许可证按q退出查看,再yes一下,然后一路enter
输出以下信息表示安装成功
在这里插入图片描述
最后激活一下环境变量

source ~/.bashrc

验证

conda

若输出以下信息,则表示安装成功!
在这里插入图片描述

若报错输出,conda:未找到命令
在这里插入图片描述

  • 则需要配置一下环境路径
sudo vim ~/.bashrc 
  • 在文件最后添加,/path/to/conda是自己的conda的安装路径,默认在~/anaconda3/bin
export PATH="/path/to/conda/bin:$PATH"
source ~/.bashrc

再次验证即可

  1. 创建环境
conda create -n name python=3.9

注:附上conda常用命令

查看所有环境
conda env list
激活环境
conda activate env
退出环境
conda deactivate
删除环境
conda remove --name env --all
查看已安装的包
conda list

1.4 Pytorch(GPU版)配置

  1. 激活刚刚的虚拟环境
conda activate name

如遇到如下报错,运行一下conda init,然后关闭当前终端,重新开一个终端即可
在这里插入图片描述

  1. 下载pytorch
    PyTorch官网
    在这里插入图片描述
    但是一般选择以前的版本下载比较稳定
    在这里插入图片描述
    选择合适cuda版本的pytorch,复制命令并在刚刚激活的虚拟环境中下载即可
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116

经过漫长的下载…
输出以下信息,表示安装成功
在这里插入图片描述

  1. 验证
    如果在终端验证则先输入python,进入python后依次输入下面指令
    如果在ide里面则直接运行该脚本,若正常输出信息则表示安装成功
import torch

print(torch.__version__)
print(torch.version.cuda) # gpu
print(torch.backends.cudnn.version()) # cudnn 
print(torch.cuda.is_available())  # gpu
print(torch.cuda.device_count())

1.5 TensorRT(C++)配置

  1. 下载TensorRT包
    NVIDIA TensorRT Download
    选择合适版本,这里选择TensorRT 8,然后选择tar或者deb版本下载

在这里插入图片描述
注意!!如果cuda用了deb版本安装,那么TensorRT 也必须用deb版本安装,否则安装失败!!

由于上面cuda用的run版本安装,因此这里的tensorRT作者选择tar格式安装
在这里插入图片描述

  1. 解压
tar -xzvf TensorRT-xxxxxx
  1. 配置环境变量
    将TensorRT-xxxx/lib添加到LD_LIBRARY_PATH中
export PATH=path_to_TensorRT/TensorRT-xxxxx/bin:$PATH
export LD_LIBRARY_PATH=path_to_TensorRT/TensorRT-xxxxx/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=path_to_TensorRTTensorRT-xxxxx/lib:$LIBRARY_PATH

source ~/.bashrc

为了避免其它软件找不到 TensorRT 的库,也可以选择把 TensorRT 的库和头文件添加到系统路径下(可选)

sudo cp -r TensorRT-xxxx/lib/* /usr/lib
sudo cp -r TensorRT-xxxx/include/* /usr/include
  1. 验证
cd TensorRT-xxxxx/samples/sampleOnnxMNIST/
make -j8
cd ../../data/mnist
python download_pgms.py 
cd ../../bin
./sample_mnist

输出以下信息则表示配置成功
在这里插入图片描述

二、 推荐IDE配置


2.1 Pycharm配置(Python)

PyCharm是一款适用于数据科学和Web开发的Python集成开发环境(IDE),旨在提高开发效率并改善用户体验。
选择Pycharm的原因是因为Pycharm的功能十分强大,功能包括比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
最重要是Pycharm的界面很好看而且调试代码起来各个变量的数据也非常清晰,并且Pycharm现在已经成为主流的python的IDE了,因此强力推荐!!

Pycharm下载
选择下面的社区版,免费的;专业版只能免费使用30天
在这里插入图片描述
解压压缩包

tar -xzf pycharm-xxxx.tar.gz

2.1.1 工程创建

点击 New project
在这里插入图片描述

在 Interpreter type里面可以选择解释器的类型,选择base coda,路径选择之前装conda的路径点击create

2.1.2 环境创建

右下角点开终端,可以看到终端前面的 :(base),这个表示当前所处的环境
在这里插入图片描述
在该终端下使用conda命令进入之前创建的环境

conda activate name

接下来就可以开始在这个环境中运行了

2.2 VSCode配置

Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器, 可用于Windows,macOS和Linux操作系统。

选择VS Code的原因还是因为vscode是一款轻量级的编辑器,安装包小,且启动速度快,插件相当的丰富,可以根据自己的喜好安装插件,十分的个性化

VS Code
下载deb包
在这里插入图片描述

  • 安装
sudo dpkg -i code_xxxxx
  • 配置常用扩展包

在这里插入图片描述
vscode的配置稍微比pycharm的复杂一些

2.2.1 Vscode 环境配置之json文件配置(C++)

拉取自己的工程文件之后,按住ctrl + shift + P, 然后在搜索框中搜索config,点击第一个 Edit Configurations
在这里插入图片描述
此时会在工作目录下,自动创建一个.vscode的文件夹,里面有个c_cpp_properties.json文件,该文件负责配置工程项目的相关文件
在这里插入图片描述

  • 可以在 includePath 里面加上自己所需库的头文件的文件夹
  • 可以在 compilerPath 中指定编译器的路径
  • 可以在 cStandard 中指定c语言的标准
  • 可以在cppStandard 中指定c++语言的标准

在这里插入图片描述

2.2.2 Vscode 环境配置之json文件配置(Python)

待记录…

2.2.3 SSH配置(可选)

连接远程服务器或者使用云GPU资源的时候,如果想用vscode进行编辑,则需要用到ssh插件
在扩展插件的搜索框中搜索ssh,点击ssh并安装
在这里插入图片描述
安装之后在vsode的左下角会出现一个图标,点击该图标
在这里插入图片描述
点击链接:
在这里插入图片描述
点击添加新的ssh host:
在下面的config选项中也可以对当前的ssh host进行编辑
在这里插入图片描述
然后输入连接的账号和密码即可实现远程连接

当然在pycharm里面也可以安装ssh

三、 Cmake配置


3.1 查看是否存在cmake及其版本、g++版本

若有输出cmake的版本则表示已安装了cmake

cmake --version

查看g++版本

g++ --version

3.2 cmake官网下载

cmake官网
选择download,选择更旧的版本下载,这里选择3.25.1
在这里插入图片描述

3.3 解压、编译安装

tar -zxvf cmake-xxxxx

编译安装,需要一段时间

cd cmake-xxxxx
./bootstrap
make -j16
sudo make install

如果运行bootstrap时候报错:
在这里插入图片描述
提示缺少openGL的库,手动安装一下

sudo apt install mesa-common-dev libglu1-mesa-dev

之后再继续运行bootstrap,若无报错则可以继续编译make、makeinstall

3.4 验证

cmake --version

输出以下版本号信息则表示安装成功
在这里插入图片描述

或者通过which cmake查看安装路径

卸载cmake
如果需要卸载cmake的话,找到之前解压的文件夹

cd cmake-xxxx
sudo make uninstall

四、 Docker配置


4.1 建立docker仓库,更新apt并安装相关工具

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

4.2 添加GPG秘钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4.3 根据系统架构配置稳定版的仓库

# x86_64
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4.4 更新apt工具包,然后安装docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

4.5 一些配置docker时遇到的报错:

报错1:连接超时

更新apt时报错:
在这里插入图片描述
说明网络连接不上

报错2:连接超时,无法连接到docker网址

运行官网的添加秘钥命令

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

报错信息:
在这里插入图片描述

报错3:找不到有效的OpenGPG谁

运行第2步添加GPG秘钥时报错
在这里插入图片描述

报错4:仓库被配置了多次

运行下面命令,添加稳定版仓库时候报错
说明已经添加了仓库了,无需再次添加,接下来需要添加秘钥

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

在这里插入图片描述

目前的问题:
接下来 sudo apt-get update这个命令一直不行,会一直连接不上

尝试1:
添加代理

export http_proxy=xxx

尝试ping通

ping xxx

依然报错
在这里插入图片描述
尝试2:
添加国内阿里源

sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | suod apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

报错:没有release文件
在这里插入图片描述

尝试3:
关闭代理

unset http_proxy 
unset https_proxy 

报错:依然无法下载
在这里插入图片描述

解决方案:直接sudo apt-get install ,而不去sudo apt-get update(成功!!)
原因应该是update需要通过docker官网update,然而国内墙的严重,因此失败
直接使用国内源下载即可解决

sudo apt-get install docker-ce docker-ce-cli containerd.io

经过多次尝试终于下载完成

4.5 添加当前用户至 docker group

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart

可以看看docker状态,版本信息

sudo systemctl status docker 
docker version

4.6 验证 docker 安装

docker run hello-world

大功告成!!
在这里插入图片描述

附:docker官网步骤

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

五、某些库的安装配置(可选)

基于的环境:
ubuntu:20.04

5.1 PCL库的安装(C++)

安装可能需要的依赖:(根据实际情况选择)

sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui 
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common  
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev 
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre

方法一:源码编译安装

Point Cloud Library
在这里插入图片描述

点击tags
在这里插入图片描述

选择合适的版本下载,ubuntu:20.04 推荐1.10.0,ubuntu:18.04 推荐 1.8.0
在这里插入图片描述
解压安装,并编译

unzip pcl-xxxx
cd pcl-xxx
mkdir build
cd build
cmake ..
make -j8
sudo make install

报错:运行cmake 时, 找不到FLANN
报错信息:Could NOT find FLANN (missing: FLANN_LIBRARY FLANN_INCLUDE_DIR) (Required
is at least version “1.7.0”)
解决方案:安装flann
flann的github: FLANN

解压

unzip flann-master.zip

创建build

cd flann-master && mkdir build && cd build

编译配置并安装

cmake ..
make -j8

报错:编译flann时,系统无法找到名为 ‘liblz4’ 的软件包
报错信息:No package ‘liblz4’ found

解决方案:
先查看是否存在该lib库

locate liblz4

若存在,则创建软连接

ln -s /usr/lib64/liblz4.so.1 /usr/lib/liblz4.so

若不存在,则需要下载 ‘liblz4’ 的源代码,并按照以下步骤编译安装:

./configure
make
sudo make install

方法二:apt get 安装(推荐)

由于源码编译安装pcl比较麻烦,并且库与库之间的依赖比较复杂,因此采用apt的方式安装可以节省很多时间

ubuntu:20.04 默认安装1.10版本

卸载可能存在的旧版的pcl

sudo apt-get remove libpcl-dev

安装pcl库

sudo apt-get install libpcl-dev

报错1:依赖不会被安装
报错信息:libpcl-dev : 依赖: libboost-all-dev 但是它将不会被安装

报错2:无法定位软件包
报错信息:
“ 正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态消息… 完成
E:无法定位软件包 xx-xx-xxx ”

报错3未满足的依赖关系:
报错信息:
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
xxxxxx : 依赖:xxxxxxxxxxxxx 但是它将不会被安装
依赖: xxxxxxxxxxxx 但是它将不会被安装
依赖: xxxxxxxxxxxxxxxxxxx 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

可能的尝试:
注意!!以下命令不建议使用:
以下命令会自动升级依赖包,并处理其中的依赖关系。
但是如果显卡驱动是采用手动安装的,那么将有可能导致显卡驱动无法使用,可能导致扩展屏无法正常显示

// 不建议使用该命令
sudo apt dist-upgrade

以下命令将采用 aptitude 安装所需依赖包,使用 aptitude 安装可能在处理依赖问题上比较好。但是可能会同时删除本身所依赖的包,所以需要看清楚是否会删除掉一些其他的包
比如可能会删除一些cuda的依赖包,导致后续cuda出现问题

// 不建议使用该命令
sudo aptitude install

解决方案:加入中科大源

首先先备份一份原本的源配置文件

sudo cp /etc/apt/sources.list /etc/aptsources_bak.list

使用vim打开sources.list

sudo vim sources.list

加入以下中科大源信息(这里还是推荐中科大的源,貌似清华源会出现一些问题)

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

最后更新一下源

sudo apt-get update && sudo apt-get upgrade

五、总结

总体的环境配置流程大概是这样,配置好了就可以开始愉快的深度学习之旅了!
当然,一些细节后续应该还会慢慢补充

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值