Yolo实用指南(step by step)之四yolov5预测数据

2023-03-02 10:49:47 浏览数 (1)

多劫多难的预测数据路程,看起来距离胜利已经伸手可及,但确折腾了整整好几天。

1、第一次经历,参考Yolo实用指南(step by step)之三yolov5训练自己的数据集

在训练数据和验证数据都已经OK了,但在预测数据的时候,一直没有预测框出来,经过核查发现pred tensor都是nan。

网上各种方案都有,有的说是pytorch版本不对,有的说是yolov5和权重版本不对,有的要改代码,反正折腾了一天,放弃了。

2、第二次经历,直接下载了yolov5的7.0版本和相关权重,结果连训练也不训练了,刚好赶上春节,回家用自家的笔记本电脑玩吧。

3、第三次经历,用自己的没有GPU的笔记本电脑,下载了CPU版本的pytorch,又开始倒腾一遍,可怜了我的笔记本,训练了24小时,当然又少不了一堆bug

train.py具体配置如下:

代码语言:javascript复制
def parse_opt(known=False):
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default=ROOT / 'weights/yolov5s.pt', help='initial weights path')
    parser.add_argument('--cfg', type=str, default=ROOT / 'models/yolov5s_facemask.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default=ROOT / 'DataSets/data/facemask.yaml', help='dataset.yaml path')
    parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')
    parser.add_argument('--epochs', type=int, default=100, help='total training epochs')
    parser.add_argument('--batch-size', type=int, default=8, help='total batch size for all GPUs, -1 for autobatch')
    parser.add_argument('--resume', nargs='?', const=True, default=True, help='resume most recent training')

以前经历过训练过程中断的情况,所有首先考虑的是保存断点设置,直接将--resume,缺省值设置为True,巴拉巴拉又是报错,看了半天才知道问题所在,又设置为缺省值,总之第一次设置为False,后续才能设置为True

经历了整整24小时,九九八十一难,终于训练成功了,迫不及待的想看到最后的成果,连验证集都不做测试了。一盆冷水又泼过来,报pandas._libs.interval 错误,又开始进行各种pip删除、下载工作,删除各种~目录,电脑重启大法,又安装了一下requirements.txt文件。

这次运行detect.py,detect.py代码如下:

代码语言:javascript复制
def parse_opt():
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', nargs=' ', type=str, default=ROOT / 'weights/best.pt', help='model path or triton URL')
    parser.add_argument('--source', type=str, default=ROOT / 'DataSets/images/maksssksksss38.png', help='file/dir/URL/glob/screen/0(webcam)')
    parser.add_argument('--data', type=str, default=ROOT / 'DataSets/data/facemask.yaml', help='(optional) dataset.yaml path')
    parser.add_argument('--save-txt', action='store_true', default=True, help='save results to *.txt')

保存预测文件如下:

代码语言:javascript复制
1 0.67125 0.464912 0.0825 0.122807
0 0.52875 0.414035 0.0925 0.140351

没高兴一会儿,又不行了,突然发现360一直认为interval.cp39-win_amd64存在病毒和木马,所以导致pandas无法运行,只好把该文件设置为信任文件。

纸上得来终觉浅绝知此事要躬行!不过说实在的python的包管理实在太乱了,后续得使用conda了

欢迎关注python与大数据分析

0 人点赞