这是来自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实时绘制损失,但我得到的是训练期间的黑色窗口。只有在它之后,才能正确显示数字。
当我将图形保存到文件时,即使在训练期间,它也会生成正确的图形。是否有可能以这种方式实时绘制损失?
答案 0 :(得分:0)
我正在使用 TensorFlow 并面临同样的问题。我在训练循环中使用plt.pause(0.01)
解决了部分(所以你可以把它放在你的回调函数中)。
但是这个解决方案根本没有效率,因为它会强制你的代码在指定的时间段内休眠(这里是0.01秒)。培训将变得非常缓慢!
我知道,这不是一个真正的解决方案,但这就是我现在所发现的一切。