我可以将参数传递给 SageMaker 估计器的入口点吗?

Posted

技术标签:

【中文标题】我可以将参数传递给 SageMaker 估计器的入口点吗?【英文标题】:Can I pass arguments to the entrypoint of a SageMaker estimator? 【发布时间】:2019-09-21 17:09:25 【问题描述】:

我正在使用SageMaker python sdk 并希望传递一些参数以供我的入口点使用,但我不知道该怎么做。

from sagemaker.sklearn.estimator import SKLearn  # sagemaker python sdk

entrypoint = 'entrypoint_script.py'

sklearn = SKLearn(entry_point=entrypoint,  # <-- need to pass args to this
                  train_instance_type=instance_class,
                  role=role,
                  sagemaker_session=sm)

【问题讨论】:

【参考方案1】:

答案是否定的,因为 Estimator 基类或 fit 方法上没有参数可以接受要传递给入口点的参数。

我通过将参数作为超参数字典的一部分传递来解决这个问题。这将作为参数传递给入口点。

【讨论】:

请注意:我有大约 30 个参数需要调整,我将超参数作为 YAML 格式的字符串传递。尽管 SageMaker 的超参数最大长度为 256(未记录)。所以现在我将不得不编辑我的 Dockerfile 以接受大约 30 个参数,每个参数都有最小值和最大值的子选项。 Sagemaker 不适合心脏衰竭或喜欢适当文档的人。 此处记录了 256 个字符的限制docs.aws.amazon.com/sagemaker/latest/APIReference/… 我确认使用超参数字典可以完成这项工作......但是这是否记录在任何地方?【参考方案2】:

此处的 entry_point 参数用于包含您要运行训练和预测的代码的脚本文件。

您可以参考example here

上面示例使用的 entry_point 脚本是here

【讨论】:

以上是关于我可以将参数传递给 SageMaker 估计器的入口点吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个估计器对象传递给 sklearn 的 GridSearchCV,以便它们在每个步骤中具有相同的参数?

在 Python 中,如何获取带参数传递给装饰器的函数名称?

将默认参数传递给python中的装饰器

我应该将啥作为参数传递给期望 NSError** 的方法?

可以在Python中将参数传递给函数对象吗?

通过Angular组件将函数作为参数传递给(单击)事件