BMW-YOLOv4-Training-Automation 环境搭建终极教程:Ubuntu + Docker + GPU 一次配好
BMW-YOLOv4-Training-Automation 环境搭建终极教程Ubuntu Docker GPU 一次配好【免费下载链接】BMW-YOLOv4-Training-AutomationThis repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.项目地址: https://gitcode.com/gh_mirrors/bm/BMW-YOLOv4-Training-Automation想用 YOLOv4 训练自己的目标检测模型却被繁琐的环境配置劝退BMW-YOLOv4-Training-Automation 环境搭建正是为了解决这个痛点而生的——这是一个由宝马创新实验室开源的零配置深度学习训练工具你只需准备带标注的数据集就能在 Docker 容器中一键完成 YOLOv4 / YOLOv3 训练并用 TensorBoard、REST API 等方式实时监控。本教程将手把手带你完成 Ubuntu Docker GPU 的完整环境搭建一次配好、开箱即用。为什么选择 BMW-YOLOv4-Training-Automation在介绍环境搭建细节之前先快速了解这个项目的核心价值零配置启动无需手动修改 darknet 源码容器构建时自动编译全 Docker 化训练环境与宿主机隔离GPU/CPU 双模式随意切换️多维度监控TensorBoard 曲线、Swagger REST API、Web UI 三种方式任选YOLOv4 / YOLOv3 双兼容老版本模型也能无缝衔接训练项目整体流程非常清晰安装依赖 → 构建 Docker 镜像 → 准备数据集 → 启动训练 → 监控训练。接下来我们逐步拆解。环境搭建前的准备工作系统要求清单BMW-YOLOv4-Training-Automation 环境搭建对硬件和系统的要求并不苛刻官方推荐配置如下项目要求操作系统Ubuntu 18.0416.04 可用但未充分测试GPU 环境NVIDIA 驱动 NVIDIA DockerGPU 训练必需DockerDocker CE 18.09 及配套组件内存建议 16GB 以上训练大模型时更稳妥 小提示纯 CPU 训练也是完全可行的只是速度会慢一些适合先跑通流程验证数据。最快安装方法一键依赖安装脚本环境搭建的第一步是安装基础依赖。项目提供了现成的自动化脚本省去逐条敲命令的麻烦。打开终端执行chmod x scripts/install_dependencies.sh source scripts/install_dependencies.sh这个脚本会一次性安装apt-transport-https、ca-certificates、curl、jq等关键工具其中jq尤为重要——后面的训练启动脚本需要靠它解析配置文件见 install_dependencies.sh。Docker 环境安装一条命令搞定接着安装 Docker 运行时。项目同样准备好了自动化脚本chmod x scripts/install_docker.sh source scripts/install_docker.sh脚本会自动完成添加 Docker 官方软件源、安装docker-ce、docker-ce-cli和containerd.io并把当前用户加入 docker 用户组见 install_docker.sh。安装完成后建议注销并重新登录让用户组权限生效。GPU 用户必看NVIDIA Docker 配置要点如果你打算用 GPU 训练强烈推荐还需要额外安装 NVIDIA 驱动和 NVIDIA Container Toolkit。安装完成后可以用下面的命令验证 GPU 是否被 Docker 正确识别sudo docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi能正常输出 GPU 信息说明 GPU 环境搭建成功可以进入下一步了。构建 Docker 镜像GPU 与 CPU 两种方案环境搭建的核心环节就是构建训练镜像。项目根目录的 Dockerfile 已经封装好了 darknet 的完整编译流程包括 CUDA、CUDNN、OpenCV 的自动配置你只需通过--build-arg参数指定硬件方案。GPU 镜像构建命令推荐sudo docker build -f docker/Dockerfile -t darknet_yolov4_gpu:1 \ --build-arg GPU1 --build-arg CUDNN1 \ --build-arg CUDNN_HALF0 --build-arg OPENCV1 .如果你使用的是 Volta、Xavier、Turing 及更新的架构可以开启半精度加速sudo docker build -f docker/Dockerfile -t darknet_yolov4_gpu:1 \ --build-arg GPU1 --build-arg CUDNN1 \ --build-arg CUDNN_HALF1 --build-arg OPENCV1 .想要一步到位还可以加上--build-arg DOWNLOAD_ALL1构建时自动下载 YOLOv3、YOLOv3-tiny、YOLOv4 的预训练权重省去手动下载的麻烦。CPU 镜像构建命令没有 GPU 也没关系一条命令切换 CPU 模式sudo docker build -f docker/Dockerfile -t darknet_yolov4_cpu:1 \ --build-arg GPU0 --build-arg CUDNN0 \ --build-arg CUDNN_HALF0 --build-arg OPENCV1 .多核 CPU 用户建议追加--build-arg OPENMP1开启多线程并行训练速度会有明显提升。准备你的数据集目录结构详解镜像构建完成后就可以准备训练数据了。项目自带示例数据集sample_dataset展示了标准的数据组织方式sample_dataset/ ├── images/ # 训练图片文件夹 ├── labels/yolo/ # YOLO 格式标签文件夹 └── train_config.json # 训练配置文件其中train_config.json是训练的关键它由模板 config/train_config.json.template 复制而来包含三大部分完整字段说明见 config/train_config_schema.jsondata数据集名称、类别列表、训练/测试划分比例默认 80% / 20%model模型框架、YOLOv4 或 YOLOv3 选择、batch_size、subdivisions、学习率、图像尺寸等超参数trainingGPU 编号、是否计算 mAP、以及 custom_api / tensorboard / web_ui 的开关和端口 注意如果你用 YOLOv4 训练记得在model/model_name里选择yolov4YOLOv4 特有的mosaic、blur等超参数也会自动生效。一键启动训练run_docker_linux_gpu.sh 使用指南一切就绪终于可以启动训练了给启动脚本加上执行权限并运行chmod x *.sh ./run_docker_linux_gpu.sh脚本会交互式询问两个信息见 run_docker_linux_gpu.sh数据集的绝对路径即包含 images、labels 和 train_config.json 的文件夹容器名称同时作为训练输出的前缀填写完毕后训练容器会自动启动。脚本会读取配置文件中的端口设置自动映射 custom_api、TensorBoard、web_ui 等服务端口。训练过程中按CTRLC可以随时中断关闭终端则会停止容器。训练输出会保存在trainings/容器名_开始时间/目录下里面包含config/训练用的 obj.data、obj.names 和 yolov4.cfgweights/按批次保存的检查点如yolov4_1000.weights、yolov4_best.weights、yolov4_last.weightstrain.txt/test.txt训练与测试集划分列表yolo_events.log训练日志三种方式监控训练效果一目了然训练跑起来之后怎么确认效果BMW-YOLOv4-Training-Automation 提供了三种监控方式总有一款适合你。方式一TensorBoard 可视化损失与 mAP 训练过程中损失值loss和平均精度mAP会实时写入 TensorBoard默认端口6006可在配置中修改。打开浏览器访问http://localhost:6006就能看到平滑的收敛曲线训练是否正常一眼便知方式二Swagger REST API 接口监控 项目内置了 FastAPI 服务默认端口8000示例配置中为 8099。启动后自带 Swagger 交互式文档包含批次输出查询/summary、配置查看/config、图片预测/predict等接口可以直接在网页上测试最新权重的推理效果方式三Web UI 实时界面 在train_config.json中把training/web_ui/enable设为true即可通过端口8090访问 AlexeyAB 提供的 web_ui 监控面板实时查看检测框可视化效果。用 REST API 测试训练成果训练到一定阶段你肯定想看看模型学得怎么样。打开 Swagger 文档中的/predict接口上传一张测试图片就能立刻得到带检测框的预测结果。示例数据集训练出的模型可以精准识别仓库场景中的Dolly手推车和Wheels轮子两类目标YOLOv4 目标检测预测结果Dolly 手推车识别YOLOv4 目标检测预测结果Wheels 轮子识别环境搭建常见问题排查清单最后整理几个新手最容易踩的坑帮你少走弯路训练日志出现 NaN如果是 avg 列出现 NaN 说明训练出了问题其他位置的 NaN 则无碍多卡训练遇到 NaN 可尝试把学习率降到 0.00065提示 Out of memory把subdivisions提高到 16、32 或 64或减小图片尺寸训练瞬间结束无报错减小 batch_size 和 subdivisionsGPU 训练没指定显卡默认使用 0 号 GPU可在配置的training/gpus字段中指定结语从环境搭建到训练落地就是这么简单回顾整个 BMW-YOLOv4-Training-Automation 环境搭建流程核心就三步安装依赖与 Docker、构建 GPU/CPU 镜像、配置数据集后一键启动。相比手动编译 darknet 动辄数小时的折腾这套全自动化的方案真正做到了开箱即用。赶紧克隆仓库准备一份带标注的数据集去体验零配置训练 YOLOv4 的畅快吧git clone https://gitcode.com/gh_mirrors/bm/BMW-YOLOv4-Training-Automation【免费下载链接】BMW-YOLOv4-Training-AutomationThis repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.项目地址: https://gitcode.com/gh_mirrors/bm/BMW-YOLOv4-Training-Automation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考