AWS Sagemaker:是否可以修改现有的train_image演示?

时间:2018-10-03 04:54:20

标签: amazon-web-services machine-learning docker-image amazon-sagemaker

我正在尝试在AWS Sagemaker上进行演示“ DeepAR-Electricity.ipynb”。

但是在运行“ estimator.fit”进行训练之后,我只能在每个纪元中获取avg_epoch_loss的日志,这些日志由我找不到的某些功能打印而成。如何绘制训练和验证损失曲线?

是否可以修改现有的train_image演示?如果否,如何绘制训练和验证损失曲线?是,如何使用源代码培训功能?

enter image description here

1 个答案:

答案 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()