在keras训练期间绘图时,Matplotlib显示黑色窗口

时间:2017-03-14 13:21:25

标签: python matplotlib keras

这是来自keras的回调函数。

def on_epoch_end(self, epoch, logs={}):
    self.losses.append(logs.get('loss'))
    self.val_losses.append(logs.get('val_loss'))
    plt.plot(self.val_losses, 'g', label='Validation loss')
    plt.plot(self.losses, 'b', label='Training loss')

我想使用matplotlib实时绘制损失,但我得到的是训练期间的黑色窗口。只有在它之后,才能正确显示数字。

当我将图形保存到文件时,即使在训练期间,它也会生成正确的图形。是否有可能以这种方式实时绘制损失?

black window

1 个答案:

答案 0 :(得分:0)

我正在使用 TensorFlow 并面临同样的问题。我在训练循环中使用plt.pause(0.01)解决了部分(所以你可以把它放在你的回调函数中)。

但是这个解决方案根本没有效率,因为它会强制你的代码在指定的时间段内休眠(这里是0.01秒)。培训将变得非常缓慢!

我知道,这不是一个真正的解决方案,但这就是我现在所发现的一切。