我如何获得 Sagemaker Estimator 的工作名称

数据挖掘 aws
2021-09-16 02:08:49

我遇到了 SageMaker 的绊脚石。我怎么知道我的工作名称是什么?

例如:

mnist_estimator = MXNet(entry_point='/home/ec2-user/sample-notebooks/sagemaker-python-sdk/mxnet_mnist/mnist.py',
                        role=role,
                        output_path=model_artifacts_location,
                        code_location=custom_code_upload_location,
                        train_instance_count=1,
                        train_instance_type='ml.m4.xlarge',
                        base_job_name=’foo’,
                        hyperparameters={'learning_rate': 0.1})

然后当我调用 fit() 时,它会打印出来:

信息:使用名称创建培训作业:foo-2018-01-10-20-13-57-893

当我查看我的 S3 存储桶时,我看到:

2018-01-10 15:20:45 411784 工件/foo-2018-01-10-20-13-57-893/output/model.tar.gz

所以我的工作名称是“foo-2018-01-10-20-13-57-893”而不是“foo”,但是我怎样才能从 python 中得到这个呢?我想我正在寻找一种从 Estimator 本身中提取它的方法,但我只是对此一无所知。我正在阅读 python 源代码,但这对我没有帮助,可能是因为我也只是在学习 python。

2个回答

_current_job_name 包含作业的名称。因此,在问题的示例中:

print(mnist_estimator._current_job_name)

会打印

foo-2018-01-10-20-13-57-893

当您想为 sagemaker 资源(源目录、输出目录和所有相关的培训特定资源)提供作业名称时,可以使用 fit() 方法

fit(inputs=None, wait=True, logs='All', job_name=None, experiment_config=None) 关联