【yolo】yolov3的pytorch版本保存自定义数据集训练好的权重,并载入自己的模型
多次试验终于测出来了!!很高兴,结果截图:
数据集是来自网上的,代码原型是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版本保存自定义数据集训练好的权重,并载入自己的模型相关推荐
- YOLOv5自定义数据集训练
YOLOv5自定义数据集训练 简介 本文介绍如何在自己的VOC格式数据集上训练YOLO5目标检测模型. VOC数据集格式 首先,先来了解一下Pascal VOC数据集的格式,该数据集油5个部分组成,文 ...
- YOLO5实战口罩检测识别(win下 + 环境部署配置 + 口罩YOLO格式数据集+训练好的权重)
发财 一.环境搭建 1.1.源码下载 1.2.切换虚拟环境 1.3.安装组件 二.数据集 三.训练 四.检测 五.写在最末 还是先贴下结果图, 最后收敛的pr都接近0.9. 一.环境搭建 可以先参考博 ...
- 行人属性识别二:添加新网络训练和自定义数据集训练
序言 上一篇记录了训练过程,但是项目中提供的模型网络都是偏大的,如果想要在边缘设备上部署,还是比较吃力的,所以本文记录如何加入新的网络模型进行训练,以repvgg为例,加入mobilenet.shuf ...
- MMrotate自定义数据集训练与验证格式转换脚本
数据集准备 数据集格式 文件夹格式:Data/ #保存Dota数据集的目录 Train #存放images和labelTxt的文件夹 Images#存放所有训练集图片的文件夹 labelTxt #存放 ...
- OpenPCDet 自定义数据集训练
目录 0.目标: 1.数据的预处理 2.修改数据处理部分的代码 2.1 复制对数据集进行处理的文件 2.2 对kitti_lidar_dataset.py进行修改 2.2.1 头文件修改 2.2.2 ...
- pytorch版本用自己数据集复现Yolov4检测
代码准备以及环境的搭建 yolov4-pytorch 这是YOLOv4架构的PyTorch重新实现,它基于官方的Darknet实现AlexeyAB / darknet与PASCAL VOC,COCO数 ...
- 在集群服务器进行自定义数据集训练记录过程 TensorBoard logging requires TensorBoard with Python summary writer installed.
先记录解决办法: TensorBoard logging requires TensorBoard with Python summary writer installed. This should ...
- PyTorch:保存/加载训练好的模型测试
保存 torch.save(model.state_dict(), './cnn.pth') 加载 model = VGG16() #加载模型前要创建一个模型的实例对象 model.load_stat ...
- python 训练好的模型怎么保存_MNIST数据集训练完如何保存成模型文件?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input ...
最新文章
- 深度理解python中的元类
- Struts2的国际化
- trinitycore MySQL模块_Windows下编译TrinityCore服务端
- 【转】MS-DOS下怎样使用解压缩共具
- spring mvc 总体概况
- 活动 | 日立·INNOWAY “引领变革 启迪未来” 创意马拉松
- .net 中使用rabbitmq
- zlog日志库的简单封装,以及给debug级别添加颜色显示
- MUSIC算法原理以及详细推导
- 图书馆系统java实训报告_基于Java的图书馆管理系统的设计实习报告
- 华三comware跳槽_H3C Comware
- 参考文献标号字体_参考文献标号字体 参考文献标准格式字体
- 计算机命令行操作系统,什么是命令提示符以及如何打开它
- 〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)
- Mat 无法解析dump文件:Dominator tree not available. Open the Dominator Tree or delete indices and parse aga
- memory leak check tools 详解
- 联通服务器光信号亮红灯移动,联通los红灯闪啥意思(图文)
- 硕士毕业去一线城市的企业好,还是去三线城市做公务员好?
- 无线路由器怎么做一个家庭服务器,家庭路由器怎么做DHCP服务器
- LINQ查询————八大基本子句
热门文章
- kuka程序备份_那智机器人系统备份步骤
- tf keras Dense源码解析
- 可视化mysql怎么导入sql文件_使用navicat导入sql文件的方法步骤
- 无线路由器dns服务器不能用,DNS服务器不可用
- python去掉列表的括号和逗号_在每行之后显示没有逗号,括号等的python 2d...
- 全国计算机二级准考证贵州,贵州计算机二级考试准考证打印时间
- 素数p阶群乘法循环群啥意思_抽象代数2-3 群元素的阶和循环群
- JavaWeb生成图片验证码
- 二十七、 爬取Boss直聘的招聘信息
- pyspark模块介绍