美文网首页
keras定期调整学习率

keras定期调整学习率

作者: 你说你要一场 | 来源:发表于2019-07-18 18:20 被阅读0次

    keras可以import两个函数
    定义一个函数
    进而实现动态调整学习率。
    并且fit里的callbacks中的学习率会覆盖掉complie里的学习率。
    还有,def scheduler(epoch):里的model要是里接下来要引用的model,当有多个model或者model被重新命名是需要注意这一点。
    下面是代码:

    import keras.backend as K
    from keras.callbacks import LearningRateScheduler
    
    def scheduler(epoch):
        if epoch<1000:
            # lr=K.get_value(model2.optimizer.lr)
            K.set_value(model2.optimizer.lr, 0.00001)
            return K.get_value(model2.optimizer.lr)
        else:
            K.set_value(model2.optimizer.lr, 0.0000001)
            return K.get_value(model2.optimizer.lr)
    reduce_lr = LearningRateScheduler(scheduler)
    
    model2 = Sequential()
        model2.add(Dense(units=1,kernel_initializer="ones",bias_initializer=initializers.Constant(value=-0.01),kernel_constraint=unit_norm(),input_dim=1))
        model2.compile(optimizer=Adam(lr=0.0000001),loss='mse')
        history = model2.fit(test_in,test_out,epochs=2000,verbose=1,callbacks=[reduce_lr])
    

    下图是加不加callbacks的对比:


    不加callbacks
    加callbacks 不加callbacks
    加callbacks

    相关文章

      网友评论

          本文标题:keras定期调整学习率

          本文链接:https://www.haomeiwen.com/subject/dolrlctx.html