Keras (凯拉斯)我想在val_acc停止改善时降低学习率

Keras (凯拉斯)我想在val_acc停止改善时降低学习率,keras,Keras,我正在尝试制作CNN模型,但精确度较低: 所以,我想在验证精度停止提高时降低SGD学习率 我如何制作和编译它???如果您在model.train\u批量上循环,您可以手动更改学习速率: import keras.backend as K from keras.optimizers import Adam import sys epochs = 50 batch_size = 32 iterations_per_epoch = len(x_train) // batch_size lr = 0

我正在尝试制作CNN模型,但精确度较低:

所以,我想在验证精度停止提高时降低SGD学习率


我如何制作和编译它???

如果您在model.train\u批量上循环,您可以手动更改学习速率:

import keras.backend as K
from keras.optimizers import Adam
import sys

epochs = 50
batch_size = 32
iterations_per_epoch = len(x_train) // batch_size

lr = 0.01
model.compile(optimizer=Adam(lr), loss='some loss')

min_val_loss = sys.float_info.max
for epoch in range(epochs):
    for batch in range(iterations_per_epoch):
        model.train_on_batch(x_train, y_train)
        val_loss = model.evaluate(x_val, y_val)
        if val_loss >= min_val_loss:
            K.set_value(model.optimizer.lr, lr / 2.)
            lr /= 2.
        else:
            min_val_loss = val_loss
一旦验证丢失停止减少,这是一种非常简单的降低学习率的方法。我建议实施更复杂的规则,例如,在最近的X批中,验证损失没有减少。

因为它应该是model.optimizer.learning\u rate