Azure 机器学习 SDK 和 CLI v2 中的表达式

使用 Azure 机器学习 SDK 和 CLI v2,可以在创作作业或组件时可能不知道某个值时使用表达式。 提交作业或调用组件时,会计算表达式并替换值。

表达式的格式为${{ <expression> }}。 提交作业或组件时,在客户端上计算一些表达式。 在服务器(运行作业或组件的计算)上计算其他表达式。

客户端表达式

注意

计算表达式的“客户端”是提交作业或运行组件的位置。 例如,本地计算机或计算实例。

表达式 说明 作用域
${{inputs.<input_name>}} 对输入数据资产或模型的引用。 适用于所有作业。
${{outputs.<output_name>}} 对输出数据资产或模型的引用。 适用于所有作业。
${{search_space.<hyperparameter>}} 引用在扫描作业中使用的超参数。 根据search_space选择每个试用版的超参数值。 仅扫描作业。
${{parent.inputs.<input_name>}} 将管道中子作业(管道步骤)的输入绑定到顶级父管道作业的输入。 仅管道作业。
${{parent.outputs.<output_name>}} 将管道中子作业(管道步骤)的输出绑定到顶级父管道作业的输出。 仅管道作业。
${{parent.jobs.<step-name>.inputs.<input-name>}} 绑定到管道中另一个步骤的输入。 仅管道作业。
${{parent.jobs.<step-name>.outputs.<output-name>}} 绑定到管道中另一个步骤的输出。 仅管道作业。

服务器表达式

重要

以下表达式在服务器端而不是客户端解析。 对于作业创建时间与作业提交时间不同的计划作业,将在提交作业时解析表达式。 由于这些表达式是在服务器端解析的,因此它们将使用工作区的当前状态,而不是创建计划作业时的工作区状态。 例如,如果在创建计划作业后更改工作区的默认数据存储,表达式 ${{default_datastore}} 将解析为新的默认数据存储,而不是创建计划作业时的默认数据存储。

表达式 说明 作用域
${{default_datastore}} 如果配置了管道默认数据存储,则将解析为管道默认数据存储名称;否则将解析为工作区默认数据存储名称。

可以使用 pipeline_job.settings.default_datastore 控制管道默认数据存储。
适用于所有作业。

管道作业具有可配置的管道默认数据存储。
${{name}} 作业名称。 对于管道,它是步骤作业名称,而不是管道作业名称。 适用于所有作业
${{output_name}} 作业输出名称 适用于所有作业

例如,如果将 azureml://datastores/${{default_datastore}}/paths/${{name}}/${{output_name}} 用作输出路径,则运行时将会其解析为 azureml://datastores/workspaceblobstore/paths/<job-name>/model_path 的路径。

后续步骤

有关这些表达式的详细信息,请参阅以下文章和示例: