问题情景
import matplotlib.pyplot as plt
epoch = [0,1,2]
loss = [0,1,0]
plt.plot(epoch,loss)
plt.show()
print(x)
做神经网络训练时,会期望一边执行程序,一边能看到相应的loss变化。
执行类似上述功能的代码时,plt.show()之后的代码在关闭figure之后才会继续执行,这样就会导致我们训练被中断,在上述代码中的体现为“print(x)”在plt.show()显示的figure窗口关闭后才会被执行。
因此,这里找了个方案来解决这个问题。
解决方案
使用plt.savefig(),可以把每个epoch-loss图保存到本地,而不中断程序
import matplotlib.pyplot as plt
epoch = [0,1,2]
loss = [0,1,0]
plt.plot(epoch,loss)
epoch = len(loss)
filePath = './checkpoints/lossMap/' + str(epoch) + '_loss'
plt.savefig(filePath)