我使用keras构建了一个简单的LSTM模型,并按如下方式进行了培训:
model = Sequential()
model.add(LSTM(activation='tanh',input_dim=6,output_dim=50,return_sequences=False))
model.add(Dense(output_dim=1,activation = 'sigmoid'))
model.compile(loss='binary_crossentropy', optimizer =optimizers.Adam(lr = 0.01),metrics=['accuracy'])
model.fit(X_train,y_train,batch_size=256,nb_epoch=1000,validation_data = (X_test,y_test))
model.save('model_params.h5')
该模型几乎融合。因此,我想通过使用较小的学习率(即0.001)恢复训练来微调模型。我怎么能做到这一点?
答案 0 :(得分:0)
您只需要再次编译模型:
model.compile(loss='binary_crossentropy',
optimizer= optimizers.Adam(lr=0.001),...)
但通常,Adam
是一个非常好的优化器,不需要这些更改。它单独找到它的方式是正常的。
当您使用新的优化器进行编译时,训练分歧是很正常的。在优化器自行调整之前需要几个时期。