从一开始学习这个框架之后,我慢慢的了解了很多这个框架的强大之处,不得不感叹一下它相对于PyTorch真香。在我们研究深度学习项目的过程中,确实要涉及到很多基本的tips,这些方法在传统的PyTorch中都是需要自己去实现的,而在pl中这些东西都得到优化,目前还在发掘中。具体方法查看官方文档。如果没接触过这个框架的可以看我上一篇文章。文章https://blog.youkuaiyun.com/lzxsz_/article/details/140081429?spm=1001.2014.3001.5501。
EarlyStopping
我们平时训练过程总要通过验证集的指标来评估这个模型的好坏,Early Stopping就是防止过拟合的方法之一,pl的callback模块封装了该方法,我们不需要自己再定义。
首先导入模块是必要的:
from pytorch_lightning.callbacks import EarlyStopping
然后我们在定义了Trainer之前呢,实例化EarlyStopping:
earlystopping = EarlyStopping('val_loss', patience=hparams.patience, min_delta=0.00, mode="min")
这里的参数解释一下,第一个是指定早停的指标,我这里是val_loss,第二个patience参数是指定多少个epoch指标没有更新,就实现早停,停止训练,min_delta参数为指标的更新大小,这里是0,最后一个参数就是更新的方向,val_loss显然是越小越好。
最后将该参数作为callback传递给Trainer: