
从零开始跑通yolov8基线一、环境的搭建1.1 下载python3.101.2、安装 PyTorch 2.5.1 CUDA 12.41.3 安装 Ultralytics二、初步了解YOLOv82.1 Ultralytics类似于mmseg 而yolo类似于segformer2.2 操作以及训练的区别三、数据集OGSOD2四、开始训练以RGB为例子4.1 数据集配置文件下载预训练权重4.3 先跑一个epoch验证整条链路数据加载 → 模型 → GPU → 保存都通。4.3.1 训练的一些量级单位4.3.2 训练命令五、输出结果5.1 日志5.2 权重六、完整训练补充1、快速打开本项目一、环境的搭建1.1 下载python3.10cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8# 创建 conda 环境conda create-p./envs/yolov8python3.10-y激活环境conda activate /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/envs/yolov8设置短别名以后直接 act_yolo 就能激活。echoalias act_yoloconda activate /mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/envs/yolov8~/.bashrcsource~/.bashrcact_yolo升级pippipinstall--upgradepip1.2、安装 PyTorch 2.5.1 CUDA 12.4pipinstalltorch2.5.1torchvision0.20.1torchaudio2.5.1\-f https://mirrors.tuna.tsinghua.edu.cn/pytorch-wheels/cu124/torch_stable.html检查安装结果python-c import torch print(PyTorch:, torch.__version__) print(CUDA available:, torch.cuda.is_available()) print(CUDA version:, torch.version.cuda) print(GPU:, torch.cuda.get_device_name(0) if torch.cuda.is_available() else None) print(cuDNN:, torch.backends.cudnn.is_available()) 1.3 安装 Ultralyticspipinstallultralytics8.3.54protobuf4.25.3检查python-c import torch from ultralytics import YOLO print(PyTorch:, torch.__version__) print(CUDA available:, torch.cuda.is_available()) print(CUDA version:, torch.version.cuda) print(GPU:, torch.cuda.get_device_name(0) if torch.cuda.is_available() else None) print(cuDNN:, torch.backends.cudnn.is_available()) print(Ultralytics imported OK) 二、初步了解YOLOv82.1 Ultralytics类似于mmseg 而yolo类似于segformer类比区别2.2 操作以及训练的区别Ultralytics源码位置一般的普通训练创新改进算法三、数据集OGSOD2OGSOD2/ ├── rgb/ ← 光学可见光模态 │ ├── train/ │ │ ├── images/18773张 .png │ │ └── labels/18773个 .txtYOLO 格式 │ └── test/ │ ├── images/4676张 .png │ └── labels/4676个 .txt │ ├── sar/ ← SAR合成孔径雷达模态 │ ├── images/{train,test}/ 同上18773 4676│ ├── labels/{train,test}/ 同上 │ └── annotations/3个 COCO 格式 json │ ├── *.py 前人写的工具脚本 │ ├── check.py COCO json 校验 │ ├── yolo-json.py YOLO → COCO 转换 │ ├── sort.py 批量重命名 │ ├── draw.py, label_vis.py 标注可视化 │ ├── predict_vis.py 推理可视化 │ ├── findblank.py 找空标注 │ └── rename.py 重命名四、开始训练以RGB为例子4.1 数据集配置文件告诉代码数据集位置结构标签名# OGSOD2 RGB baseline# 3 classes, val test (temporary)path:/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/data/OGSOD2/rgbtrain:train/imagesval:test/imagestest:test/imagesnc:3names:0:Bridge1:Harbor2:Oil-tank数据集根目录YOLOv8 图像与标签简化写法类别我们之前做的项目有多个配置文件1、数据集配置文件————》yolov8里只需要这一个配置文件2、模型结构————》在下载预训练权重时附带3、学习率、优化器、epoch超参数————》在命令行里显示指定4、日志、checkpoint等————》5、主配置文件继承上面四个下载预训练权重cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8/weightcurl-L-oyolov8n.pt https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.ptls-lhyolov8n.ptcd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv84.3 先跑一个epoch验证整条链路数据加载 → 模型 → GPU → 保存都通。4.3.1 训练的一些量级单位一个 iteration一次迭代迭代一次更新一次参数Batch批次一次喂给模型一组Batch 一组样本集合Batch Size 批量一组样本集合有多少张图片Epoch 轮次: 整个训练集完整过一遍4.3.2 训练命令cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8 yolo detect traindataconfigs/ogsod2_rgb.yamlmodelweight/yolov8n.ptepochs1imgsz256batch64projectruns/detectnamesmoke_testexist_okTrue五、输出结果5.1 日志5.2 权重这里只保存 best 和 last可以再续训练六、完整训练cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8mkdir-plogsls-lahcd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8nohupyolo detect traindataconfigs/ogsod2_rgb.yamlmodelweight/yolov8n.ptepochs100imgsz256batch64cacheTrueworkers8projectruns/detectnamergb_baselineexist_okTruelogs/rgb_baseline.log21成功会输出类似[1]12345立即看日志确认启动tail-n30logs/rgb_baseline.log确认进程在跑jobsnvidia-smi补充1、快速打开本项目cd/mnt/9f931cdb-179d-4c9f-9779-76ecfecd9560/student/wr/YOLOv8 act_yolo