我目前正在发现Keras库以进行深度学习,似乎在训练阶段选择了一个世纪,但我不知道该选择基于哪个假设。

在Mnist数据集中,选择的时期数为4:

model.fit(X_train, Y_train,
          batch_size=128, nb_epoch=4,
          show_accuracy=True, verbose=1,
          validation_data=(X_test, Y_test))

有人可以告诉我为什么以及我们如何选择正确的时期?

最佳答案

从Keras 2.0开始,nb_epoch参数在任何地方都已重命名为epochs

对神经网络进行迭代训练,对整个数据集进行多次遍历。整个数据集的每次遍历都称为时期。

有两种选择最佳时期数的可能方法:

1)将epochs设置为大数,并在验证准确性或损失停止改善时停止训练:所谓的early stopping

from keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor='val_loss', patience=4, mode='auto')

model.fit(X_train, Y_train,
      batch_size=128, epochs=500,
      show_accuracy=True, verbose=1,
      validation_data=(X_test, Y_test),callbacks = [early_stopping])

2)将时期数视为超参数,并根据一组epochs值网格上的试验(运行)选择最佳值

08-25 05:43