我目前正在发现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
值网格上的试验(运行)选择最佳值