在步骤之间传递数据 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在步骤之间传递数据

当需要从工作流工序的输出中检索信息时,可以使用JsonGetJsonGet帮助您从 Amazon S3 或属性文件中提取信息。以下各节说明了可用于提取步骤输出的方法JsonGet

使用 Amazon S3 在步骤之间传递数据

您可以JsonGet在 a ConditionStep 中使用直接从 Amazon S3 获取 JSON 输出。Amazon S3 URI 可以是包含原始字符串、管道运行变量或管道参数的Std:Join函数。以下示例显示了如何在 a JsonGet 中使用ConditionStep

# Example json file in s3 bucket generated by a processing_step { "Output": [5, 10] } cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name="<step-name>", s3_uri="<s3-path-to-json>", json_path="Output[1]" ), right=6.0 )

如果您在条件步骤中JsonGet使用 Amazon S3 路径,则必须在条件步骤和生成 JSON 输出的步骤之间明确添加依赖关系。在以下示例中,创建条件步骤时依赖于处理步骤:

cond_step = ConditionStep( name="<step-name>", conditions=[cond_lte], if_steps=[fail_step], else_steps=[register_model_step], depends_on=[processing_step], )

使用属性文件在步骤之间传递数据

使用属性文件存储处理步骤输出中的信息。这在分析处理步骤的结果以决定如何执行条件步骤时特别有用。该JsonGet函数处理属性文件,并允许您使用 JsonPath 符号来查询属性 JSON 文件。有关 JsonPath 符号的更多信息,请参阅 JsonPath repo

要存储属性文件以备日后使用,必须先创建一个具有以下格式的 PropertyFile 实例。path 参数是保存属性文件的 JSON 文件的名称。任何 output_name 都必须与您在处理步骤中定义的 ProcessingOutputoutput_name 相匹配。这使属性文件能够捕获步骤中的 ProcessingOutput

from sagemaker.workflow.properties import PropertyFile <property_file_instance> = PropertyFile( name="<property_file_name>", output_name="<processingoutput_output_name>", path="<path_to_json_file>" )

创建ProcessingStep实例时,添加property_files参数以列出 Amazon SageMaker 模型构建管道服务必须索引的所有参数文件。这将保存属性文件以备日后使用。

property_files=[<property_file_instance>]

要在条件步骤中使用属性文件,请将 property_file 添加到传递给条件步骤的条件中(如以下示例所示),以便使用 json_path 参数查询 JSON 文件中的所需属性。

cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name=step_eval.name, property_file=<property_file_instance>, json_path="mse" ), right=6.0 )

有关更深入的示例,请参阅 Amaz SageMaker on Python 软件开发工具包中的属性文件