验证集 loss升高且训练出的模型过于极端

613 阅读1分钟

以下两张图为batch_size=512的情况下的loss与accuracy的可视化图表

batch_size512.jpg

batch_size512_acc.jpg

由以上两张图可以看出,在对该模型进行训练时,其train loss是不断上升的,在网上搜了一下,大概意思是过拟合,所以我采用了以下代码来降低学习率

# 调整学习率
def scheduler(epoch):
    # 每隔100个epoch,学习率减小为原来的1/10
    if epoch % 5 == 0 and epoch != 0:
        lr = K.get_value(model.optimizer.lr)
        K.set_value(model.optimizer.lr, lr * 0.1)
        print("lr changed to {}".format(lr * 0.1))
    return K.get_value(model.optimizer.lr)

结果:
每训练五轮调整一次学习率。 图片.png

图片.png