我有一个 SageMaker TrainingStep,然后是一个 ProcessingStep。我需要将 TrainingStep 的输出路径传递给 ProcessingStep。
TrainingStep 正在将输出到 S3 文件夹写入名为s3://mybucket/output.tar.gz
. 但是,作为输出,在 path$['ModelArtifacts']['S3ModelArtifacts']
中,它返回了错误的文件名:s3://mybucket/model.tar.gz
为了能够解决这个错误,我必须删除路径的最后 12 个字符。所以我需要运行的亚马逊状态语言表达式是:
$['ModelArtifacts']['S3ModelArtifacts'][0,-12]
我正在使用 Python 来配置我的状态机,所以我有以下代码:
ProcessingInput(
source=
train_step.output()["$['ModelArtifacts']['S3ModelArtifacts'][0,-12]"],
destination='/opt/ml/processing/inference_output/',
input_name='inference_output'
),
这会生成以下 Amazon 状态语言字符串:
"S3Input": {
"S3Uri.$": "$['$['ModelArtifacts']['S3ModelArtifacts'][0,-12]']",
"LocalPath": "/opt/ml/processing/inference_output/",
"S3DataType": "S3Prefix",
"S3InputMode": "File",
"S3DataDistributionType": "FullyReplicated",
"S3CompressionType": "None"
}
这不是期望的结果,因为期望的结果是产生以下结果:
"S3Uri.$": "$['ModelArtifacts']['S3ModelArtifacts'][0,-12]"
如何修改我的 Python 代码以产生所需的结果?