如何在 Keras 的每个纪元后禁用打印报告?

新手上路,请多包涵

在每个纪元之后,我都有如下打印输出:

 Train on 102 samples, validate on 26 samples
Epoch 1/1
Epoch 00000: val_acc did not improve
102/102 [==============================] - 3s - loss: 0.4934 - acc: 0.8997 - val_loss: 0.4984 - val_acc: 0.9231

我没有使用内置的纪元,所以我想禁用这些打印输出并自己打印一些东西。

怎么做?

如果重要的话,我正在使用 tensorflow 后端。

原文由 Dims 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 532
2 个回答

verbose=0 设置为模型的拟合方法。

原文由 Saikat Kumar Dey 发布,翻译遵循 CC BY-SA 4.0 许可协议

首先,您应该将 verbose=0 设置为具有静音环境的 fit 方法,然后我们需要一个回调来控制它。我总是使用以下代码来显示每 10 个时期及其损失。

 import tensorflow as tf

class Callback(tf.keras.callbacks.Callback):
    SHOW_NUMBER = 10
    counter = 0
    epoch = 0

    def on_epoch_begin(self, epoch, logs=None):
        self.epoch = epoch

    def on_train_batch_end(self, batch, logs=None):
        if self.counter == self.SHOW_NUMBER or self.epoch == 1:
            print('Epoch: ' + str(self.epoch) + ' loss: ' + str(logs['loss']))
            if self.epoch > 1:
                self.counter = 0
        self.counter += 1

model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, use_multiprocessing=True, callbacks=[Callback()], verbose=0)

请注意,如果你增加 SHOW_NUMBER ,处理将更快完成,所以如果你的 epochs 很大,你应该设置更多。

纪元

原文由 Mehdi Hasirchi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题