多劫多难的预测数据路程,看起来距离胜利已经伸手可及,但确折腾了整整好几天。
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与大数据分析