目标检测YOLOv5-早停机制(EarlyStopping)

⽬标检测YOLOv5-早停机制(EarlyStopping )
⽬标检测 - 早停机制(Early Stopping )
营养块
flyfish
YOLOv5:v5的版本没有早停机制,在2021年9⽉5⽇后的版本更新了早停机制
EarlyStopper updates #4679(Sep 5, 2021)
参数
patience:训练了多少个epoch,如果模型效果未提升,就让模型提前停⽌训练。
fitness监控的是增⼤的数值,例如mAP,如果mAP在连续训练patience次内没有增加就停⽌训练。如何使⽤
⽅式需要两步
⼀ 声明,初始化patience 参数
stopper = EarlyStopping(patience=3)
⼆ 训练过程中判断是否需要早停
stopper(epoch=epoch, fitness=mAP的数值)
下例中使⽤随机数替代传⼊的mAP,并编写代码进⾏测试
输出结果import  random class  EarlyStopping :    # YOLOv5 simple early stopper    def  __init__(self , patience =30):        self .best_fitness = 0.0  # i.e. mAP        self .best_epoch = 0        self .patience = patience or  float ('inf')  # epochs to wait after fitness stops improving to stop        self .possible_stop = False  # possible stop may occur next epoch    def  __call__(self , epoch , fitness ):        if  fitness >= self .best_fitness :  # >= 0 to allow for early zero-fitness stage of training            self .best_epoch = epoch            self .best_fitness = fitness        delta = epoch - self .best_epoch  # epochs without improvement        print ("delta:",delta )        print ("best_fitness:", self .best_fitness )        self .possible_stop = delta >= (self .patience - 1)  # possible stop may occur next epoch        stop = delta >= self .patience  # stop training if patience exceeded        if  stop :            print (f'EarlyStopping patience {self .patience } exceeded, stopping training.')        return  stop #我们编写如下代码进⾏测试stopper = EarlyStopping (patience =3)epochs =10start_epoch =0for  epoch in  range (start_epoch , epochs ):    random .seed (epoch )    print ("function:",stopper (epoch =epoch , fitness =random .uniform (0.1, 0.5)))    print ("possible_stop:",stopper .possible_stop )
1
2
3
4
5
6
堆芯
7
8
释放器9
10
11
新型增塑剂
12
13虚拟地震台网
14
15
16
17
18
19
对路网20
21
22
23
24
25
26
27
28
29
30
# delta: 0# best_fitness: 0.43776874061001925# function: False # possible_stop: False # delta: 1# best_fitness: 0.43776874061001925# function: False # possible_stop: False # delta: 0# best_fitness: 0.4824137087556998# function: False # possible_stop: False # delta: 1# best_fitness: 0.4824137087556998# function: False # possible_stop: False # delta: 2# best_fitness: 0.482413708
7556998# function: False # possible_stop: True # delta: 3# best_fitness: 0.4824137087556998# EarlyStopping patience 3 exceeded, stopping training.# function: True # possible_stop: True 12345678910111213141516171819202122232425262728

本文发布于:2024-09-22 16:39:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/215918.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:训练   模型   机制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议