我正在使用自定义docker映像在SageMaker上训练模型。我需要指定用于存储检查点的本地路径(容器中的路径),以便SageMaker可以将其输出复制到S3。根据这里的文档https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html,我可以在初始化Estimator时这样做:
# The local path where the model will save its checkpoints in the training container
checkpoint_local_path="/opt/ml/checkpoints"
estimator = Estimator(
...
image_uri="<ecr_path>/<algorithm-name>:<tag>" # Specify to use built-in algorithms
output_path=bucket,
base_job_name=base_job_name,
# Parameters required to enable checkpointing
checkpoint_s3_uri=checkpoint_s3_bucket,
checkpoint_local_path=checkpoint_local_path
)
我想在docker构建中更好地指定checkpoint_local_path。在构建图像时是否有办法做到这一点?也许使用环境变量?*我们建议将本地路径指定为"/opt/ml/checkpoints",以便与默认的SageMaker检查点设置保持一致。*
不像你不喜欢/opt/ml/checkpoints
的名字,你不需要在你的docker中指定任何东西,除了在/opt/ml/checkpoints
中写作(如果你正在做迁移学习或想要从以前保存的检查点中拾取)
您在容器中写入/opt/ml/checkpoints
的任何内容将保存在S3中您在checkpoint_s3_uri='s3://...'
中指定的位置