使用Docker和Miniconda3搭建YOLOv13开发环境指南
详细介绍如何在Docker容器中使用Miniconda3搭建YOLOv13的开发环境,包括环境配置、依赖安装、模型测试和训练的全过程。
1. 环境准备
1.1 拉取Miniconda3 Docker镜像
docker pull continuumio/miniconda3
1.2 查看可用镜像
docker images
1.3 创建并运行容器
docker run -it --gpus all --name myconda -v E:/workspace/yolov13:/workspace -p 2000:20000 continuumio/miniconda3:latest
参数说明:
--gpus all
: 启用所有GPU--name myconda
: 容器命名为myconda-v E:/workspace/yolov13:/workspace
: 将本地目录挂载到容器的/workspace-p 2000:20000
: 端口映射
2. 配置开发环境
2.1 进入工作目录并创建conda环境
cd /workspace/
conda create -n yolov13 python=3.11 -y
2.2 下载YOLOv13源码
从GitHub下载源码并解压至E:\workspace\yolov13:
2.3 安装依赖
cd /workspace/yolov13-main/yolov13-main
conda activate yolov13
注释掉requirement.txt中的flash_attn(后面单独安装)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
2.4 安装flash_attn
由于直接安装可能较慢,建议下载whl文件后安装:
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
2.5 下载预训练模型
从以下地址下载模型并放到当前目录:
3. 测试模型
3.1 创建测试脚本
在当前路径下创建detect.py
文件:
from ultralytics import YOLO
# 加载模型
model = YOLO('yolov13n.pt') # 替换为你想用的模型
# 运行推理
results = model("ultralytics/assets/bus.jpg")
# 保存检测结果图像(不会显示图片)
results[0].save(filename="output_detected_bus.jpg") # 保存为文件
3.2 常见问题解决
Numpy版本问题
pip install "numpy<2" --force-reinstall -i https://pypi.tuna.tsinghua.edu.cn/simple
libGL.so.1缺失问题
- 更改镜像源:
cat > /etc/apt/sources.list << 'EOF'
# Debian 12 (bookworm) 阿里云镜像源
deb http://mirrors.aliyun.com/debian/ bookworm main non-free contrib
deb http://mirrors.aliyun.com/debian/ bookworm-updates main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ bookworm-security main non-free contrib
EOF
- 更新并安装依赖:
apt-get update
apt-get install -y libgl1 libglib2.0-0
缺少thop问题
pip install thop
3.3 再次运行测试
python detect.py
4. 模型训练
创建训练脚本train.py,修改模型、训练数据集、预测图片的配置文件路径
,最后直接训练即可:
from ultralytics import YOLO
model = YOLO('yolov13n.yaml')
# 训练模型
results = model.train(
data='coco.yaml',
epochs=600,
batch=256,
imgsz=640,
scale=0.5, # S:0.9; L:0.9; X:0.9
mosaic=1.0,
mixup=0.0, # S:0.05; L:0.15; X:0.2
copy_paste=0.1, # S:0.15; L:0.5; X:0.6
device="0,1,2,3",
)
# 在验证集上评估模型性能
metrics = model.val('coco.yaml')
# 对图像进行目标检测
results = model("path/to/your/image.jpg")
results[0].show()
留下你的赞