凯拉斯:如果我在训练了几个时代之后重新编译我的模型呢

2024-05-16 02:09:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型,我想用学习率=0.8来训练它几个时期,然后设置学习率=0.4&;继续训练。 但由于在编译模型时设定了学习率。。。那么,如果我在几个时代之后重新编译模型/权重,会发生什么呢

下面是我的代码:p.S(我的学习率是动态的)

lr = 0.04
adam = Adam(lr=lr)
weight_factor = 10
models.compile(
    optimizer=adam,
"kullback_leibler_divergence"
    loss = {'W1':kl_divergence,'age':mae},
    metrics={"age": mae,"W1":'accuracy'},
    loss_weights={'W1':weight_factor, 'age': 1}
)

动态学习率回调

callbacks = [
  ReduceLROnPlateau(monitor='val_age_mean_absolute_error', 
                    factor = 0.5, 
                    patience = 7,
                    min_delta = 0.01, 
                    cooldown = 2,
                    min_lr = 0.0001,
                    mode = 'min')
]

训练

epochs=35
history = models.fit(train_gen, steps_per_epoch=len(trainset) / batch_size, epochs=epochs, callbacks=callbacks, validation_data=validation_gen, validation_steps=len(testset) / batch_size * 3)

Tags: 模型agemodels动态minw1validationepochs
1条回答
网友
1楼 · 发布于 2024-05-16 02:09:53

重新编译模型时,权重将重置为“随机”

所以您应该使用model.save_weights('weights.h5')保存权重,然后编译模型,然后加载权重model.load_weights('weights.h5')

相关问题 更多 >