我正在尝试在AWS Sagemaker上进行演示“ DeepAR-Electricity.ipynb”。
但是在运行“ estimator.fit”进行训练之后,我只能在每个纪元中获取avg_epoch_loss的日志,这些日志由我找不到的某些功能打印而成。如何绘制训练和验证损失曲线?
是否可以修改现有的train_image演示?如果否,如何绘制训练和验证损失曲线?是,如何使用源代码培训功能?
答案 0 :(得分:0)
正如Praneeth指出的那样,DeepAR的容器映像无法修改。如果要绘制学习曲线,则一种可能性是解析日志。我已附上示例,说明如何解析下载到“ deepar-log.txt”的日志。
import re
import matplotlib.pyplot as plt
with open('deepar-log.txt', 'r') as f:
lines = '\n'.join(f.readlines())
avg_loss_re = re.compile("Epoch\[(\d+)\].*Batch.*\[(\d+)\].*avg_epoch_loss=(-?\d+\.?\d*)")
avg_losses = [(int(epoch), int(batch), float(loss)) for epoch, batch, loss in avg_loss_re.findall(lines)]
plt.plot([loss for _, _, loss in avg_losses])
plt.show()