不断将渲染的Matplotlib训练指标图更新到我的显示器

问题描述

我正在尝试在整个训练过程中将ML损失图连续呈现到我的屏幕上。

在笔记本中,我只是使用它(出于描述的原因,它仍然是bas):

results

但是,如果我改为呈现逐步损失,而不是时代损失,则需要频繁更新到更长而复杂的图形,与实际花费相比,每一步都需要更多时间来重新更新图形培养。在本地终端上运行此操作甚至更糟,因为每次绘制有问题的训练指标图时,都必须手动关闭打开的图。

我正在寻找一种更有效的方法来重复渲染显示,这种方法可以在我的本地终端上正常工作。

一个很好的例子是OpenAI的Gym模块中的渲染功能。这使您可以渲染强化学习环境。看着source code,他们使用pyglet连接到我的本地显示器并呈现当前状态。但是,我的情况有所不同,因为每次渲染时都会绘制长度不断增加的数据。我怀疑仅使用Pyglet的方法是否有效。直观上,我的主要约束是我无法在每个步骤中重新渲染整个图形。也许Matplotlib具有将图形更新为显示的内置方法,该方法为此目的进行了更优化?

请注意,我知道诸如Weights and Biases的wandb python模块之类的在线内容,但我希望将指标显示在自己的屏幕上,而不是在线上。

编辑:

这有效,但是迫使我重新渲染整个显示,随着情节的变长,效率将降低:

from IPython.display import clear_output
import numpy as np
...

epochs = 100
losses = []

for epoch in range(epochs):
  # Train for one epoch
  history = model.fit(X,Y,epochs = 1)

  # Record mean training loss of this epoch
  losses.append(np.mean(history.history['loss']))

  # Clear the output
  clear_output(wait = True)

  # display the loss graph
  fig = plt.figure(figsize = (7,7))
  plt.plot(losses)
  plt.xlim(0,len(losses) - 1)
  plt.xlabel("Epoch")
  plt.ylabel("Loss")
  plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)