代码之家  ›  专栏  ›  技术社区  ›  Kev1n91

从生成器中训练keras模型,得到每个历元的反馈,并使用提前停止算法

  •  1
  • Kev1n91  · 技术社区  · 6 年前

    我想在Keras培训模特时做三件事:

    1. 使用发电机
    2. 使用提前停止

    代码片段如下所示:

    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'])
    

    需要循环来获得每个历元的反馈。然而,这将导致在早期停止训练后继续训练。

    那么,有没有办法知道循环中何时发生了提前停止,以便我可以手动中断它?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ben    6 年前

    每个历元的步数 的论点 fit_generator()

    现在提前停车,hist将正常工作 fit()

    为此,要求生成器在到达一个历元结束后继续工作(表示按每个历元的步数定义的批数)