我有一个jupyter笔记本脚本,它只是在docker容器中启动了一个训练脚本。
我在该训练脚本中添加了一些打印语句,但未在笔记本或CloudWatch中显示。
我正在使用常规的print()语句。我应该如何从训练脚本中记录调试信息?
答案 0 :(得分:0)
您可以在AWS CloudWatchLogs上找到日志。转到Sagemaker仪表板上的培训工作,选择所需的培训工作。在那您将找到一个选项'view_logs'。它将引导您到Cloudwatch日志。
希望这会有所帮助!
答案 1 :(得分:0)
根据https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html,“ Docker容器可能会将消息发送到Stdout和Stderr文件。AmazonSageMaker将这些消息发送到您的AWS账户中的Amazon CloudWatch日志。因此,print()应该适合您的情况。您是否在更改培训脚本后检查Docker映像是否已更新?
答案 2 :(得分:0)
当Python尝试缓冲stdout时,我已经看到了这一点,这种情况在Docker中并不总是能很好地发挥作用-如果将ENV PYTHONUNBUFFERED = 1添加到Dockerfile中(然后重建映像),将解决此问题,如果这是原因。
答案 3 :(得分:0)
对于普通的python打印,您可以手动清除标准输出
print("My Message", flush=True)