AWS SageMaker Training作业未保存模型输出

时间:2020-02-10 16:06:31

标签: amazon-sagemaker

我正在SageMaker上进行培训。作业未完全完成,并达到了MaxRuntimeInSeconds停止条件。作业停止时,文档显示工件仍将被保存。我在下面附上了我的培训工作的状态进度。看来培训工作正确完成了。但是,输出S3文件夹为空。对这里出什么问题有任何想法吗?训练数据位于同一存储桶中,因此应该具有所需的一切。

status progression

2 个答案:

答案 0 :(得分:0)

从状态进度来看,训练图像下载似乎已在世界标准时间15:33完成,并且此时,根据您指定的MaxRuntimeInSeconds参数启动了停止条件。从那时起,需要2分钟(15:33到15:35)保存任何可用的模型工件,但是在您的情况下,训练过程根本没有发生。唯一要做的就是下载预构建的图像(包含ML算法)。请从文档中参考以下几行,其中指出要保存的模型取决于训练过程所处的状态。也许您可以尝试增加MaxRuntimeInSeconds并再次运行作业。另外,请检查您设置的MaxWaitTimeInSeconds值。该值必须等于或大于MaxRuntimeInSeconds

请从AWS documentation中找到摘录:

” Amazon SageMaker自动提供的训练算法 尽可能保存模型训练工作的中间结果。 这种保存工件的尝试只是尽力而为的案例 可能处于无法保存状态。例如,如果 培训才刚刚开始,该模型可能尚未准备好保存。”

答案 1 :(得分:0)

如果超出了MaxRuntimeInSeconds,那么模型上传只是尽力而为,实际上取决于算法在终止之前是否将任何状态保存到/opt/ml/model

Stopping阶段15:33到15:35之间的两分钟等待时间表示发送到算法的SIGTERMSIGKILL信号之间的最长时间(请参见{ {3}})。如果您的算法捕获了SIGTERM,应该在2分钟后SageMaker平台通过SIGKILL信号强行杀死SIGTERM并将其作为信号来妥善保存其工作并关闭。

鉴于Stopping步骤中的等待时间正好是2分钟,而Uploading步骤实际上是在15:35开始并在15:35几乎立即完成,因此您的算法很可能做了不要利用SIGTERM警告,并且没有任何东西要保存到/opt/ml/model中。为了给您一个确定的答案,请创建一个SageMaker doc for more detail,SageMaker团队可以私下向您发送消息,以收集您的工作细节。