1. 安装 VSCode ,Visual Studio Code - Code Editing. Redefined
2. 安装 VSCode 插件,Remote-SSH 、 Chinese (Simplified)
3. 领取 50元算力券(24小时4090显卡),无需认证!
>博主粉丝福利,限量领取
><https://cloud.lanyun.net/#/registerPage?promoterCode=5f738eaf90>
4. 租显卡设备
5. 上传数据集
> 数据集链接:<https://pan.baidu.com/s/14Gw_jymmUxQAWv3JNvgwqw>
> 提取码:df66
或 : <https://download.csdn.net/download/weixin_43694096⁄88369997>
6. 解压数据集到指定位置:unzip -d /root/VOC2007/ /root/lanyun-fs/VOC2007.zip
7. 下载代码:
source /etc/network_turbo # 开启代理
git clone https://github.com/ultralytics/ultralytics --branch v8.3.12
8. 初始化 conda init
9. 新建conda环境:conda create --name yolov8 python=3.10 -y
10. 激活conda环境:conda activate yolov8
11. 安装环境:
unset http_proxy && unset https_proxy # 关闭代理
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
12. 下载权重 wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
13. 推理模型:
python</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>from ultralytics import YOLO</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>if __name__ == '__main__':</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # 加载模型</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> model = YOLO(r'yolov8n.pt') # YOLOv8n模型</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> model.predict(</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> source=r'ultralytics/assets/bus.jpg',</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> save=True, # 保存预测结果</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> project='runs/predict', # 项目名称(可选)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> name='exp', # 实验名称,结果保存在'project/name'目录下(可选)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> )</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>
14. 编写数据集 yaml 文件
15. 训练模型:

python</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>from ultralytics import YOLO</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>if __name__ == '__main__':</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # 加载模型</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> model = YOLO('yolov11.yaml', task="detect") # 不使用预训练权重训练 | detect, segment, classify, pose, obb</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # model = YOLO(r'yolov11.yaml').load("yolov11n.pt") # 使用预训练权重训练</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # 训练参数 ----------------------------------------------------------------------------------------------</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> model.train(</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> data='coco128.yaml',</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> epochs=100, # (int) 训练的周期数</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> patience=50, # (int) 等待无明显改善以进行早期停止的周期数</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> batch=32, # (int) 每批次的图像数量(-1 为自动批处理)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> imgsz=640, # (int) 输入图像的大小,整数或w,h</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> save=True, # (bool) 保存训练检查点和预测结果</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> save_period=-1, # (int) 每x周期保存检查点(如果小于1则禁用)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> cache=True, # (bool) True/ram、磁盘或False。使用缓存加载数据</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> device='', # (int | str | list, optional) 运行的设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> workers=8, # (int) 数据加载的工作线程数(每个DDP进程)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> project='runs/train', # (str, optional) 项目名称</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> name='exp', # (str, optional) 实验名称,结果保存在'project/name'目录下</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> pretrained=True, # (bool | str) 是否使用预训练模型(bool),或从中加载权重的模型(str)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> optimizer='SGD', # (str) 要使用的优化器,选择=[SGD,Adam,Adamax,AdamW,NAdam,RAdam,RMSProp,auto]</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> verbose=True, # (bool) 是否打印详细输出</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> seed=0, # (int) 用于可重复性的随机种子</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> close_mosaic=0, # (int) 在最后几个周期禁用马赛克增强</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> resume=False, # (bool) 从上一个检查点恢复训练</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> amp=False, # (bool) 自动混合精度(AMP)训练,选择=[True, False],True运行AMP检查</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> )</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>
16. 评估模型:
python</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>from ultralytics import YOLO</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>if __name__ == '__main__':</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # 加载模型</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> model = YOLO(r'yolov8n.pt') </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> # 验证模型</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> metrics=model.val(</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> data=r'coco128.yaml',</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> split='val', # (str) 用于验证的数据集拆分,例如'val'、'test'或'train'</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> batch=1, # (int) 每批的图像数量(-1 为自动批处理)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> imgsz=640, # 输入图像的大小,可以是整数或w,h</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> device=0, # 运行的设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> workers=8, # 数据加载的工作线程数(每个DDP进程)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> iou=0.6, # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> project='runs/val', # 项目名称(可选)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> name='exp', # 实验名称,结果保存在'project/name'目录下(可选)</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> )</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> print(f"mAP50-95: {metrics.box.map}") # map50-95</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> print(f"mAP50: {metrics.box.map50}") # map50</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> print(f"mAP75: {metrics.box.map75}") # map75</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> speed_metrics = metrics.speed</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> total_time = sum(speed_metrics.values())</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> fps = 1000 / total_time</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> print(f"FPS: {fps}") # FPS</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/206025.html