如何将 Sagemaker Pipelines TrainingStep 中的模型保存到特定位置,即没有唯一的父文件夹?

问题描述 投票:0回答:2

我知道TrainingStep默认将模型保存为输出,但我想将其保存在我的S3存储桶中的特定位置。我需要一种以编程方式查找模型存储位置的方法,因此我想摆脱唯一的父目录 (pipelines-1913hs62gbn9-pipeline-scripts-tra-SAPd32cbD1z/)。

我知道输出路径参数,但这会改变唯一文件夹名称后面的路径,而不是整个路径。

我也知道之前回答过的this问题,但对我的情况没有帮助。 (之前被烧过,所以现在在问之前认真搜索)

例如 现在保存的路径: s3://{my_bucket}/model/pipelines-1913hs62gbn9-pipeline-scripts-tra-SAPd32cbD1z/model.tar.gz

我想要的地方: s3://{my_bucket}/model/model.tar.gz

关于要进行的 API 调用或将其保存在特定位置的方法有什么想法吗?

*编辑以修复拼写错误

amazon-s3 amazon-sagemaker amz-sagemaker-distributed-training
2个回答
1
投票

SageMaker 训练/管道步骤始终向为模型目录中存储的文件提供的输出路径添加唯一的后缀。有两种方法可以避免这种情况

  1. 您可以定义 checkpoint_local_path 和 checkpoint_s3_uri,而不是存储到 /opt/ml/model,将文件按原样复制到 s3。
  2. 编写您自己的 s3 上传器,它将上传到已知路径。

0
投票

这就是我最终所做的:

我的管道中的训练步骤之后有一个处理步骤。我能够找到保存在 opt/ml/model 中的训练步骤的输出,对其进行处理,并将产品作为ProcessingOutput 对象输出到处理步骤定义中我的存储桶上的某个位置。

© www.soinside.com 2019 - 2024. All rights reserved.