如何实现学习率每个epoch,衰减50%
时间: 2024-02-01 07:02:45 浏览: 68
在深度学习模型中,我们可以通过设置学习率(learning rate)来控制模型的训练效果。常见的学习率衰减方式是每个epoch后将学习率减半,以下是一种实现方式:
```python
from keras.callbacks import LearningRateScheduler
def lr_scheduler(epoch, lr):
"""
学习率衰减函数
:param epoch: 当前epoch数
:param lr: 当前学习率
:return: 更新后的学习率
"""
if epoch % 1 == 0 and epoch != 0:
lr = lr / 2
return lr
# 在训练过程中使用 LearningRateScheduler 回调函数来实现学习率的调整
lr_scheduler_callback = LearningRateScheduler(lr_scheduler)
model.fit(X_train, y_train, callbacks=[lr_scheduler_callback])
```
在上述代码中,我们定义了一个学习率衰减函数 `lr_scheduler()`,其中 `epoch` 表示当前的epoch数,`lr` 表示当前的学习率。如果 `epoch` 可以被2整除并且不等于0,则将学习率除以2,最终返回更新后的学习率。然后我们将这个学习率衰减函数作为参数传递给 `LearningRateScheduler` 回调函数,在训练过程中每个epoch都会调用该函数来更新学习率。
阅读全文