我使用亚马逊tensorflow容器为起点创建了一个客户docker容器:
763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:1.15.2-gpu-py36-cu100-ubuntu18.04
在容器中,我使用docker SAGEMAKER_PROGRAM运行自定义的keras (with TF backend)训练任务。我可以正常访问训练数据(来自EFS挂载点),并且可以生成输出到 /opt/ml/model,该输出会同步回S3。所以输入和输出都没问题:我缺少的是实时监控。
一个Sagemaker训练作业会发出系统指标,如CPU和GPU负载,您可以方便地在Sagemaker训练作业控制台上实时查看这些指标。但是,我无法找到一种方法从我的Python代码中发出有关培训工作进度的指标,例如损失、准确性等。
实际上,理想情况下,我想使用Tensorboard,但由于Sagemaker不会在EC2控制台上公开实例,因此我无法找到如何连接到Tensorboard的实例的IP地址。
因此,备选方案是尝试从训练代码中发出相关指标,以便我们可以在其运行时监视作业。
基本问题是如何实时监控在Sagemaker训练作业容器中运行的自定义训练任务的关键指标: - 是否可能使用Tensorboard解决方案?如果可以,如何进行? - 如果不是,如何从我的Python代码中发出指标,并使它们直接显示在训练作业控制台或云监控指标中?
顺便说一句:到目前为止,我未能在训练作业容器内获得足够的凭据,以访问S3或云监控。