繁体   English   中英

如何为 SageMaker 训练作业准备 docker 图像

[英]How to prepare docker image for SageMaker training job

假设我有 docker 图像,其中包含机器学习的训练代码 model。我如何调整它以适应 SageMaker 训练作业,以便我可以在那里运行 docker 图像?

在为 SageMaker 训练作业调整 docker 图像时,需要注意以下几点:

  1. 训练代码

训练代码应位于 docker 图像中的/opt/ml/code/中,主脚本应为/opt/ml/code/train 此外,该脚本应该具有执行它的权限( chmod 777 /opt/ml/code/train可以解决问题)。 同样不重要,但很有用 - 如果您需要进行任何导入,您可能需要将代码添加到路径export PATH="/opt/ml/code:${PATH}" 默认情况下,SageMaker 运行训练docker run image train ,但您也可以使用自定义入口点,以便保留训练代码的原始路径。

  1. 超参数

作为HyperParameters参数的一部分提供的超参数在/opt/ml/input/config/hyperparameters.json中保存为 json 文件,因此您的训练代码必须从那里读取它们。 请记住,它仅支持字符串字段并具有以下限制:

  • Map 条目:最少 0 个条目。 最多 100 个项目。
  • 密钥长度限制:最大长度为 256。
  • 值长度限制:最大长度为 2500。
  1. Output

要保存 model,应将所有文件放入/opt/ml/model/文件夹 - SageMaker 将此处的所有文件压缩为 TAR 格式并将其保存到训练作业中指定位置的 S3。

  1. [可选] 指标

通过在容器生成的日志上运行正则表达式来收集指标。 这些在训练作业的指标定义中定义,您可以在其中为现有日志提供正则表达式(例如,每个时期后的损失与val_loss: (.*) )。 启用度量友好日志的最少内容如下 - Log f"Value = {value}" ,对应的正则表达式Value = (.*) ,对应的度量定义{"Name": "value", "Regex": "Value = (.*)"}

重要文件:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM