[英]How to prepare docker image for SageMaker training job
假设我有 docker 图像,其中包含机器学习的训练代码 model。我如何调整它以适应 SageMaker 训练作业,以便我可以在那里运行 docker 图像?
在为 SageMaker 训练作业调整 docker 图像时,需要注意以下几点:
训练代码应位于 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
,但您也可以使用自定义入口点,以便保留训练代码的原始路径。
作为HyperParameters
参数的一部分提供的超参数在/opt/ml/input/config/hyperparameters.json
中保存为 json 文件,因此您的训练代码必须从那里读取它们。 请记住,它仅支持字符串字段并具有以下限制:
要保存 model,应将所有文件放入/opt/ml/model/
文件夹 - SageMaker 将此处的所有文件压缩为 TAR 格式并将其保存到训练作业中指定位置的 S3。
通过在容器生成的日志上运行正则表达式来收集指标。 这些在训练作业的指标定义中定义,您可以在其中为现有日志提供正则表达式(例如,每个时期后的损失与val_loss: (.*)
)。 启用度量友好日志的最少内容如下 - Log f"Value = {value}"
,对应的正则表达式Value = (.*)
,对应的度量定义{"Name": "value", "Regex": "Value = (.*)"}
。
重要文件:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.