如何解决用于 LSTM 网络的带有 Kfold 的 Keras-Tuner
是否可以将 Keras-Tuner 与 K-Fold 一起使用,并观察每个文件夹中的输出?
这是我们的试验:
class LSTMModel(HyperModel):
def __init__(self,xshape):
...
def build(self,hp):
...
model = Model(inputs = inp,outputs = out)
model.compile(loss = "binary_crossentropy",optimizer=optimizer,metrics = ['accuracy'])
return model
kf = KFold(5,shuffle = True)
for real_train_index,real_val_index in kf.split(train_x,train_y[:,0]):
real_train_x = train_x[real_train_index]
real_train_y = train_y[real_train_index][:,0]
real_val_x = train_x[real_val_index]
real_val_y = train_y[real_val_index][:,0]
es = EarlyStopping(monitor='val_loss',patience=25,verbose=0,restore_best_weights=True)
model_test = LSTMModel(real_train_x.shape)
tuner = RandomSearch(model_test,objective='val_accuracy',max_trials=3,directory='hp_test')
tuner.search(x = real_train_x,y= real_train_y,validation_data = (real_val_x,real_val_y),epochs = 100,callbacks=[es])
代码的主要问题是每次迭代我们都会忘记之前的训练,所以它不再是 KFold 验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。