【发布时间】:2018-06-15 11:22:30
【问题描述】:
我正在使用 Keras 训练神经网络。我将num_epochs 设置为较高的数字并让EarlyStopping 终止训练。
model = Sequential()
model.add(Dense(1, input_shape=(nFeatures,), activation='linear'))
model.compile(optimizer='rmsprop', loss='mse', metrics=['mse', 'mae'])
early_stopping_monitor = EarlyStopping(monitor='val_loss', patience=15, verbose=1, mode='auto')
checkpointer = ModelCheckpoint(filepath = fname_saveWeights, verbose=1, save_best_only=True)
seqModel = model.fit(X_train, y_train, batch_size=4, epochs=num_epochs, validation_data=(X_test, y_test), shuffle=True, callbacks=[early_stopping_monitor, checkpointer], verbose=2)
这很好用。但是,然后我尝试绘制损失函数:
val_loss = seqModel.history['val_loss']
xc = range(num_epochs)
plt.figure()
plt.plot(xc, val_loss)
plt.show()
我正在尝试绘制 num-epochs (xc) 的范围,但 EarlyStopping 结束得更早,所以我的形状有误。
如何检测 EarlyStopping 在什么时期结束以解决不匹配问题?
详细设置将结束纪元打印到屏幕上,但我无法确定如何访问要在图中使用的值。
【问题讨论】:
标签: python tensorflow neural-network keras