Docker环境搭建CUDA12.2 + Yolov5 7.0 GPU训练环境(单卡训练)
1、建立Docker容器,指定Shm共享内存。
docker run -d -it --name yolov5 --gpus all -p 20000:22 --shm-size 16g dockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.04
2、进入容器,升级安装器apt
docker exec -it f7383b766c6d /bin/bash
apt-get update
apt-get install vim
3、安装ssh连接,并设置密码、开机启动
apt-get install openssh-server
passwd
添加root连接权限
vim /etc/ssh/sshd_config
注释这一行PermitRootLogin prohibit-password
添加一行PermitRootLogin yes
然后保存退出,重启服务
/etc/init.d/ssh restart
在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限
vim /root/start_ssh.sh
脚本内容为
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
chmod +x /root/start_ssh.sh
将start_ssh.sh脚本添加到启动文件中
vim ~/.bashrc
# startup run
if [ -f /root/start_ssh.sh ]; then
/root/start_ssh.sh
fi
source ~/.bashrc
4、设置CUDA环境变量
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
source ~/.bashrc
5、测试CUDA可用性
nvidia-smi
nvcc -V


6、安装Python3.8.10
安装底层包
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
apt-get install lzma
apt-get install liblzma-dev
apt-get install libbz2-dev
下载Python-3.8.10.tar.xz,并拷贝至容器中,解压安装
tar xvJf Python-3.8.10.tar.xz
cd Python-3.8.10
./configure --enable-optimizations
make
make install
测试版本
python3 -V
检查是否缺少bz包,如缺少,按以下方式处理
cd /usr/local/lib/python3.8/lib-dynload/
find -name _bz2.cpython-38-x86_64-linux-gnu.so
找到容器中原有Python3对应的bzip2 的 .so 文件_bz2.cpython-36m-x86_64-linux-gnu.so,我的是在3.6环境下安装的因此位置在 /usr/lib/python3.6/lib-dynload/ 下,将对应的 .so 文件 复制python3.8 对应的目录下(我的是/usr/local/lib/python3.8/lib-dynload/ 需要根据你自己安装的位置寻找)
此处提供可直接下载:
x86_64
通过百度网盘分享的文件:_bz2.cpython-38-x86_64-linux-gnu.so
链接:https://pan.baidu.com/s/118rJFroStucKDW3T3kBiyQ?pwd=g8m7
提取码:g8m7
--来自百度网盘超级会员V7的分享
ARM64(aarch64)
通过网盘分享的文件:_bz2.cpython-312m-aarch64-linux-gnu.so
链接: https://pan.baidu.com/s/1Q_ObUh2Pam4b3yq-MIeJPQ?pwd=dq8h 提取码: dq8h
--来自百度网盘超级会员v7的分享
并将文件名中“36m” 修改为 “38” 即可。
tips:(find命令) find (目录起点) -name 加上文件名 查找文件比较快
可以使用whereis python3 来找到系统默认的python 环境的位置。
7、安装git并拉取yolov5代码,此时tag为7.0
apt-get install git
mkdir /project
cd /project
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
8、安装pytorch,因为此时在容器内部,所以不再安装虚拟环境,pytorch与torchvision版本选取如下,下载拷贝安装即可
pip3 install /work/torch-2.3.0+cu121-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install /work/torchvision-0.18.0+cu121-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
9、安装其他依赖,安装前,使用vim打开requirements.txt,将torch与torchvision注释,因为这是cpu版本
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
安装额外依赖
pip3 install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple
10、设置gpu可见性环境变量,注意这个环境变量非常重要,如果训练过程一直卡在0%,但CUDA、Pytorch一切正常,就是因为这个变量没有设置。
vim ~/.bashrc
export CUDA_VISIBLE_DEVICES=0
source ~/.bashrc
11、准备训练集、测试集、验证集,结构均如下

此处提供车辆图片数据集
通过百度网盘分享的文件:det_vehicle_4kinds_yolo.rar
链接:https://pan.baidu.com/s/1H4bfFREvVOWhRjYjYNAsSQ?pwd=965t
提取码:965t
--来自百度网盘超级会员V7的分享
其中yaml文件配置如下
train: /project/yolov5/dataset/det_vehicle_4kinds_yolo/train/images
val: /project/yolov5/dataset/det_vehicle_4kinds_yolo/val/images
nc: 4
names: [ 'car', 'bus','van', 'others']
12、开始训练
python3 train.py --batch 32 --data ./dataset/det_vehicle_4kinds_yolo/data.yaml --device 0


浙公网安备 33010602011771号