Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从生成器中训练keras模型,获得每个历元的反馈,并使用提前停止算法_Python_Tensorflow_Keras - Fatal编程技术网

Python 从生成器中训练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_

培训模特时,我想在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_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()
    调用完全一致

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