如果在Sagemaker中传递环境变量给Sagemaker Tuner Job?

0

【以下的问题经过翻译处理】 Sagemaker训练任务支持在训练作业中即时设置环境变量:

 "环境": { 
      "string" : "string" 
   },

https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html

我没有找到tunning任务中如何做同样的事情:

https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html

根据我的测试,Python SDK中的SagemakerTuner仅忽略传递的估算器中设置的环境变量。

是否有办法以编程方式将环境变量传递给由tuner作业启动的培训作业,或者目前不支持该功能?

profile picture
EXPERTE
gefragt vor einem Jahr34 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 感谢您提出这个问题。是的,正如您所指出的那样,在基础的CreateHyperparameterTuningJobAPI中不支持Environment集合,因此当运行调参器时,SageMaker Python SDK无法使用它。

如在SM Py SDK GitHub问题页面中讨论的那样,您可以考虑改为使用超参数来通过参数传递给作业。

如果您特别需要环境变量来进行某些其他进程/库,还可以探索通过Python脚本设置变量(也许是从超参数到环境变量的映射)。

或者另一种选择是自定义您的容器映像以通过ENV命令来导入变量。例如,要自定义现有的AWS Deep Learning容器(框架容器),您可以:

  • 使用sagemaker.image_uris.retrieve(...)查找给定框架、版本、区域等的基础镜像URI。您需要对此注册表进行Docker身份验证以及您自己的Amazon ECR帐户。
  • 创建一个Docker文件,将此基础镜像URI作为参数并从中构建FROM。类似于此示例
  • 添加所需的ENV命令以导入您需要的(静态)环境变量
  • docker build您的自定义容器(将基础镜像URI作为“ --build-arg”传递),将其上传到Amazon ECR
profile picture
EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen