Python 从生成器中训练keras模型,获得每个历元的反馈,并使用提前停止算法
培训模特时,我想在Keras中做三件事:Python 从生成器中训练keras模型,获得每个历元的反馈,并使用提前停止算法,python,tensorflow,keras,Python,Tensorflow,Keras,培训模特时,我想在Keras中做三件事: 使用发电机 获取每个时代的历史反馈 提前停车 代码段的外观如下所示: loss = [] acc = [] val_loss = [] val_acc = [] # Outer loop needed for getting the history of each epoch for i in range(0,100): hist = model.fit_generator(train_data.flow(x_train_np,y_train_
loss = []
acc = []
val_loss = []
val_acc = []
# Outer loop needed for getting the history of each epoch
for i in range(0,100):
hist = model.fit_generator(train_data.flow(x_train_np,y_train_np,batch_size=8),
validation_data = validation_data.flow(x_val_np,y_val_np,batch_size=8),
epochs=1,
samples_per_epoch=len(x_train_np),
callbacks=[earlystop])
loss.append(hist.history['loss'])
acc.append(hist.history['acc'])
val_loss.append(hist.history['val_loss'])
val_acc.append(hist.history['val_acc'])
需要循环来获得每个历元的反馈。然而,这将导致在早期停止训练后继续训练
那么,有没有办法知道循环内部何时发生了提前停止,这样我就可以手动将其中断?使用
fit\u generator()
的steps\u per\u epoch参数。这允许您将历代设置为>1,并且不再需要循环
现在,早期停止和hist将与静态数据集上的正常fit()
调用完全一致
为了使其工作,要求生成器在到达一个历元结束后继续工作(表示每个历元的步数定义的批次数)