我正在使用Amazon SageMaker来训练一个包含大量数据的模型。这需要很长时间——几小时甚至几天。在此期间,我希望能够查询训练器并查看其当前状态,特别是以下几点:
- 它已经完成了多少次迭代,还需要完成多少次迭代?(训练算法是深度学习——基于迭代)。
- 完成训练还需要多少时间?
- 理想情况下,我希望能够使用当前迭代的模型对测试样本进行分类,以查看其当前性能。
一种方法是明确告诉训练器在每次迭代后打印调试消息。然而,这些消息只会在运行训练器的控制台上可用。由于训练需要如此长的时间,我希望能够从不同的计算机上远程查询训练器的状态。
有没有办法远程查询正在运行的训练器的状态?
回答:
所有日志都可以在Amazon Cloudwatch中找到。你可以通过编程方式或通过API查询CloudWatch来解析日志。
你使用的是内置算法还是像MXNet或TensorFlow这样的框架?对于TensorFlow,你可以使用TensorBoard来监控你的作业。
此外,你可以使用描述训练作业API调用来查看高级别的作业状态:
import sagemakersm_client = sagemaker.Session().sagemaker_clientprint(sm_client.describe_training_job(TrainingJobName='You job name here'))