多次试验终于测出来了!!很高兴,结果截图:

数据集是来自网上的,代码原型是github一个大概五千多star的pytorch-yolov3,但原代码并没有载入自己的模型进行训测试阶段,然后parser参数一直不明白,导致试了多次。

其中的要点:
1.初始化权重的修改
2。载入保存好的权重。(模式选择要正确)
3。格式要正确(比如什么地方加-- 什么地方加/)
4。保存训练的模型

传入参数部分:

 parser = argparse.ArgumentParser()parser.add_argument("--image_folder", type=str, default="data/samples", help="path to dataset")parser.add_argument("--model_def", type=str, default="config/yolov3.cfg", help="path to model definition file")parser.add_argument("--weights_path", type=str, default="weights/yolov3.weights", help="path to weights file")parser.add_argument("--class_path", type=str, default="data/coco.names", help="path to class label file")parser.add_argument("--conf_thres", type=float, default=0.8, help="object confidence threshold")parser.add_argument("--nms_thres", type=float, default=0.4, help="iou thresshold for non-maximum suppression")parser.add_argument("--batch_size", type=int, default=1, help="size of the batches")parser.add_argument("--n_cpu", type=int, default=0, help="number of cpu threads to use during batch generation")parser.add_argument("--img_size", type=int, default=416, help="size of each image dimension")parser.add_argument("--checkpoint_model", type=str, help="path to checkpoint model")opt = parser.parse_args()print(opt)

其中("–weights_path"才是载入自己的模型部分,一开始以为是"–checkpoint_model",导致怎么都不对。
记录如图:
可以看到根本没有输出标签,即并没有传自己的模型,而用的默认模型,默认模型不是自己训练的数据当然不可能识别出来。

正确传参的代码:

python3 detect.py --image_folder data/custom/dd --model_def config/yolov3-custom.cfg --class_path data/custom/classes.names --checkpoint_model checkpoints/yolov3_ckpt_99.pth --weights_path checkpoints/yolov3_ckpt_99.pth


此时标签已经输出。

其中detect.py中载入模型的语句:

    # Set up modelmodel = Darknet(opt.model_def, img_size=opt.img_size).to(device)if opt.weights_path.endswith(".weights"):# Load darknet weightsmodel.load_darknet_weights(opt.weights_path)else:# Load checkpoint weightsmodel.load_state_dict(torch.load(opt.weights_path))model.eval()  # Set in evaluation mode

if opt.weights_path.endswith(".weights"):
决定了是weights_path
train.py中保存模型:
if epoch % opt.checkpoint_interval == 0:
torch.save(model.state_dict(), f"checkpoints/yolov3_ckpt_%d.pth" % epoch)

之前用resnet18训练过一个模型,但是从参数看感觉yolov3网络结构比它复杂
下一步的学习:
1。如何输出目标中心坐标点(如果有多个坐标点如何迭代)
2。调整哪些参数可以得到更精确的测试结果
3。上面的代码每轮epoch都保存了模型,结果一共保存了99个,但实际运用的话需要保存map最好的那个,所以这个代码需要优化
4。怎么从摄像头读取图片让yolov3检测
5。可不可以预处理图片后增加图片数量。

【yolo】yolov3的pytorch版本保存自定义数据集训练好的权重,并载入自己的模型相关推荐

  1. YOLOv5自定义数据集训练

    YOLOv5自定义数据集训练 简介 本文介绍如何在自己的VOC格式数据集上训练YOLO5目标检测模型. VOC数据集格式 首先,先来了解一下Pascal VOC数据集的格式,该数据集油5个部分组成,文 ...

  2. YOLO5实战口罩检测识别(win下 + 环境部署配置 + 口罩YOLO格式数据集+训练好的权重)

    发财 一.环境搭建 1.1.源码下载 1.2.切换虚拟环境 1.3.安装组件 二.数据集 三.训练 四.检测 五.写在最末 还是先贴下结果图, 最后收敛的pr都接近0.9. 一.环境搭建 可以先参考博 ...

  3. 行人属性识别二:添加新网络训练和自定义数据集训练

    序言 上一篇记录了训练过程,但是项目中提供的模型网络都是偏大的,如果想要在边缘设备上部署,还是比较吃力的,所以本文记录如何加入新的网络模型进行训练,以repvgg为例,加入mobilenet.shuf ...

  4. MMrotate自定义数据集训练与验证格式转换脚本

    数据集准备 数据集格式 文件夹格式:Data/ #保存Dota数据集的目录 Train #存放images和labelTxt的文件夹 Images#存放所有训练集图片的文件夹 labelTxt #存放 ...

  5. OpenPCDet 自定义数据集训练

    目录 0.目标: 1.数据的预处理 2.修改数据处理部分的代码 2.1 复制对数据集进行处理的文件 2.2 对kitti_lidar_dataset.py进行修改 2.2.1 头文件修改 2.2.2 ...

  6. pytorch版本用自己数据集复现Yolov4检测

    代码准备以及环境的搭建 yolov4-pytorch 这是YOLOv4架构的PyTorch重新实现,它基于官方的Darknet实现AlexeyAB / darknet与PASCAL VOC,COCO数 ...

  7. 在集群服务器进行自定义数据集训练记录过程 TensorBoard logging requires TensorBoard with Python summary writer installed.

    先记录解决办法: TensorBoard logging requires TensorBoard with Python summary writer installed. This should ...

  8. PyTorch:保存/加载训练好的模型测试

    保存 torch.save(model.state_dict(), './cnn.pth') 加载 model = VGG16() #加载模型前要创建一个模型的实例对象 model.load_stat ...

  9. python 训练好的模型怎么保存_MNIST数据集训练完如何保存成模型文件?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input ...

最新文章

  1. 深度理解python中的元类
  2. Struts2的国际化
  3. trinitycore MySQL模块_Windows下编译TrinityCore服务端
  4. 【转】MS-DOS下怎样使用解压缩共具
  5. spring mvc 总体概况
  6. 活动 | 日立·INNOWAY “引领变革 启迪未来” 创意马拉松
  7. .net 中使用rabbitmq
  8. zlog日志库的简单封装,以及给debug级别添加颜色显示
  9. MUSIC算法原理以及详细推导
  10. 图书馆系统java实训报告_基于Java的图书馆管理系统的设计实习报告
  11. 华三comware跳槽_H3C Comware
  12. 参考文献标号字体_参考文献标号字体 参考文献标准格式字体
  13. 计算机命令行操作系统,什么是命令提示符以及如何打开它
  14. 〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)
  15. Mat 无法解析dump文件:Dominator tree not available. Open the Dominator Tree or delete indices and parse aga
  16. memory leak check tools 详解
  17. 联通服务器光信号亮红灯移动,联通los红灯闪啥意思(图文)
  18. 硕士毕业去一线城市的企业好,还是去三线城市做公务员好?
  19. 无线路由器怎么做一个家庭服务器,家庭路由器怎么做DHCP服务器
  20. LINQ查询————八大基本子句

热门文章

  1. kuka程序备份_那智机器人系统备份步骤
  2. tf keras Dense源码解析
  3. 可视化mysql怎么导入sql文件_使用navicat导入sql文件的方法步骤
  4. 无线路由器dns服务器不能用,DNS服务器不可用
  5. python去掉列表的括号和逗号_在每行之后显示没有逗号,括号等的python 2d...
  6. 全国计算机二级准考证贵州,贵州计算机二级考试准考证打印时间
  7. 素数p阶群乘法循环群啥意思_抽象代数2-3 群元素的阶和循环群
  8. JavaWeb生成图片验证码
  9. 二十七、 爬取Boss直聘的招聘信息
  10. pyspark模块介绍