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
的路径。
后续步骤
有关这些表达式的详细信息,请参阅以下文章和示例: