当前位置: 首页 > news >正文

不安装YOLO只安装 PyTorch,加载已有yolo数据,从无到有创建模型训练数据并加载使用(重要)

目录

遗留问题:

1、安装依赖

2、训练脚本 train.py

3、独立推理脚本 infer.py(完全独立,不需要数据集、不需要训练代码)

关键知识点

补充:导出 ONNX 代码(追加到 train.py 末尾)

OpenCV‑C++ DNN 加载 detect.onnx 完整 Demo(VS2015)

1. pro 工程配置要点(如果你用 Qt+VS2015)

2. main.cpp 完整代码(复制直接编译)

3. 非常关键的注意点(踩坑重点)

4. 和之前整套链路完整回顾


可参考课程如下

课程未看完。仅仅看到18节课

课程已看完,但没实操

遗留问题:

1.课程未看完。仅仅看到18节课

2.课程已看完,但没实操

注意:与本章节《PyTorch 完整流程:从零搭建模型 → 训练 → 保存权重 → 加载自定义模型推理(学习pytorch框架和YOLO笔记(重要)部分说明)》进行对比更加深入了解

需求说明:不安装 ultralytics/yolo 库,但是使用 YOLO 标注格式的数据集(images 图片 + labels txt 标注),自己手写 PyTorch 检测网络,读取 yolo 格式数据集、训练、保存权重、独立脚本推理。环境:miniconda python3.8 + CPU 版 PyTorch,不引入 YOLO 任何包。YOLO 数据集格式:

plaintext

dataset/ ├─images/ │ ├─001.jpg │ └─002.jpg └─labels/ ├─001.txt # 格式:class_id x_center y_center w h (全部归一化0~1) └─002.txt

1、安装依赖

bash

conda create -n torch_detect python=3.8 -y conda activate torch_detect # cpu pytorch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu pip install opencv-python pillow

2、训练脚本 train.py

功能:

  1. 自定义简易检测 CNN 网络(不是 YOLO,自己手写)
  2. 读取YOLO 标注格式数据集(图片 + txt 标签)
  3. Dataset + DataLoader
  4. 损失、优化器、训练循环
  5. 保存 state_dict 权重(工程推荐方式)

python

import os import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoader import cv2 from PIL import Image import torchvision.transforms as T # -------------------------- 1.自定义简易检测网络 -------------------------- class SimpleDetectNet(nn.Module): def __init__(self, num_classes=2): super().__init__() # backbone卷积提取特征 self.conv1 = nn.Conv2d(3, 16, 3, padding=1) self.conv2 = nn.Conv2d(16, 32, 3, padding=1) self.conv3 = nn.Conv2d(32, 64, 3, padding=1) self.pool = nn.MaxPool2d(2,2) # 输出:简化设计,每张图输出 1个框 [x,y,w,h] + 类别概率 self.head = nn.Sequential( nn.Flatten(), nn.Linear(64*16*16, 256), nn.ReLU(), nn.Linear(256, 4 + num_classes) #4个框坐标 + num_classes类别 ) def forward(self, x): x = self.pool(torch.relu(self.conv1(x))) x = self.pool(torch.relu(self.conv2(x))) x = self.pool(torch.relu(self.conv3(x))) out = self.head(x) return out # -------------------------- 2.读取YOLO格式数据集 Dataset -------------------------- class YoloFormatDataset(Dataset): def __init__(self, root_dir, img_size=128, num_classes=2): self.root = root_dir self.img_dir = os.path.join(root_dir, "images") self.label_dir = os.path.join(root_dir, "labels") self.img_list = [f for f in os.listdir(self.img_dir) if f.endswith((".jpg",".png"))] self.img_size = img_size self.num_classes = num_classes self.transform = T.Compose([ T.Resize((img_size, img_size)), T.ToTensor(), #归一化0~1 ]) def __len__(self): return len(self.img_list) def __getitem__(self, index): img_name = self.img_list[index] img_path = os.path.join(self.img_dir, img_name) # 对应txt标签 txt_name = os.path.splite
http://www.jsqmd.com/news/1336726/

相关文章:

  • 当压缩成为一场“技术博弈”:我们为何在画质与体积间反复横跳?
  • BilibiliDown终极指南:3步解锁B站视频收藏自由
  • OpenStack Train版部署实战:从零创建第一台虚拟机实例
  • 计算机二级WPS Office备考:如何高效利用14套真题PDF提升通过率
  • Hive生产环境核心问题排查与性能优化实战指南
  • 济宁大颗粒尿素实力公司怎么联系?2026年对接指南 - 品牌优推
  • VSCode Markdown Preview Enhanced:企业级Markdown预览架构解析与深度集成指南
  • C++编译期正则表达式操作方法
  • 3分钟解锁Figma中文界面:告别英文障碍,设计师效率翻倍的秘密武器
  • 河北性价比高的橡胶挤出机生产厂家怎么选?2026年实操指南 - 品牌优推
  • Headroom:大模型上下文窗口监控工具的原理与应用
  • Polyspace静态代码分析实战:嵌入式高可信软件开发指南
  • ThinkPHP与Laravel双框架开发社区志愿者管理系统实践
  • Beam Search 与贪心解码、随机采样在文本生成中的权衡是什么?
  • Android开发核心知识体系与架构实践指南
  • C语言干货:函数知识详解(变量的作用域,全局变量,静态变量)
  • 2026年中山知识产权诉讼律师推荐:中小企业知产案件处理思路 双证律师钟泽江护航 - 本地品牌推荐
  • 绝了!这家薄型纸印刷包装服务机构,好用到让人忍不住疯狂安利!
  • 终极教程:3步让旧款Mac免费升级到最新macOS系统
  • 2026年富阳奥迪维修哪家好 到杭州富阳杭奥汽车实地看看 - 奔跑123
  • Anaconda环境创建失败全解析:从网络权限到Conda配置的根治方案
  • 5分钟零配置:如何用translate.js实现智能网页翻译?
  • Unity序列化机制解析与[SerializeField]字段排查指南
  • 固定资产管理最大的坑,从来不是盘点那天——而是剩下的364天
  • 手机网站建设合同如何避坑:从需求梳理到验收交付的完整避指南
  • KKCE: 基于 HTTP/3 QUIC 丢包韧性与拥塞控制的网站测速对抗性测试-快快测
  • Agent 5 场景屠夫:跨厂商基座横评
  • Agent三大件全配齐,为什么一到团队协作就翻车?
  • 学习云计算运维Day05
  • 普通人如何用AI搭建自媒体团队?完整工作流复盘