问题描述
我正在尝试在整个训练过程中将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 (将#修改为@)