您好,欢迎进入某某沙盘有限公司官网!

咨询热线:

020-88888888

Keras实现学习率,优化器,损失函数调优

发布时间:2024-07-22 08:03人气:

在这里插入图片描述

 
 

权值均衡是在训练样本的时候,在计算loss的时候,通过权值来均衡数据的分布。正常情况下,每个类别在损失函数中的权值是1.0。但是有时候,当某些类别特别重要的时候,我们需要给该类别的训练样本更大权值。参考我们的买房的例子,由于“买”的类别的准确率非常的重要,训练样本中的这个类别应该对损失函数有更大的影响。

可以直接给对应的类别的样本的loss乘上一个因子来设定权值。在Keras中,我们可以这样:

 
 
 

而 scheduler 函数并没有具体的描述,但可在其内部,通过 K.get_value(model.optimizer.lr) 获取当前学习率,用 K.set_value(model.optimizer.lr, lr * (0.1 ** (epoch // lr_epochs))) 修改学习率,而后将其加入LearningRateScheduler在模型训练的函数中需要添加回调 callbacks=[lr_new],以实现学习率的动态调整。至此,在模型的训练过程中,将会以每一epoch的周期自动修改学习率,
代码实现如下,其中的具体参数上图已作详细说明,就不再赘述,但同样是使用了回调函数,所以在模型训练的函数中要添加 callbacks=[checkpoint](若涉及准确率,需要在模型设置时,添加 metrics=[‘accuracy’] 参数)

 
  • 学习率的衰减有基于时间,基于步数的衰减,详情可以参考:
  1. Keras 自适应Learning Rate (LearningRateScheduler)
  2. Keras中那些学习率衰减策略

AdamW: Adam with Weight decay

 

参考优化方法总结以及Adam存在的问题(SGD, Momentum, AdaDelta, Adam, AdamW,LazyAdam)

 

020-88888888

平台注册入口