你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Command 类

命令节点的基类,用于命令组件版本消耗。

不应直接实例化此类。 相反,应使用生成器函数:command () 创建它。

继承
azure.ai.ml.entities._builders.base_node.BaseNode
Command
azure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixin
Command

构造函数

Command(*, component: str | CommandComponent, compute: str | None = None, inputs: Dict[str, Input | str | bool | int | float | Enum] | None = None, outputs: Dict[str, str | Output] | None = None, limits: CommandJobLimits | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, distribution: Dict | MpiDistribution | TensorFlowDistribution | PyTorchDistribution | RayDistribution | None = None, environment: Environment | str | None = None, environment_variables: Dict | None = None, resources: JobResourceConfiguration | None = None, services: Dict[str, JobService | JupyterLabJobService | SshJobService | TensorBoardJobService | VsCodeJobService] | None = None, queue_settings: QueueSettings | None = None, **kwargs)

参数

component
Union[str, CommandComponent]

要为步骤运行的命令组件或作业的 ID 或实例。

compute
Optional[str]

运行作业的计算目标。

inputs
Optional[dict[str, Union[ Input, str, bool, int, float, <xref:Enum>]]]

输入名称到作业中使用的输入数据源的映射。

outputs
Optional[dict[str, Union[str, Output]]]

输出名称到作业中使用的输出数据源的映射。

limits
CommandJobLimits

命令组件或作业的限制。

identity
Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]

命令作业在计算运行时将使用的标识。

environment
Optional[Union[str, Environment]]

运行作业的环境。

environment_variables
Optional[dict[str, str]]

环境变量名称和值的字典。 这些环境变量是在执行用户脚本的进程上设置的。

resources
Optional[JobResourceConfiguration]

命令的计算资源配置。

services
Optional[dict[str, Union[JobService, JupyterLabJobService, SshJobService, TensorBoardJobService, VsCodeJobService]]]

节点的交互式服务。 这是一个实验性参数,随时可能会更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

queue_settings
Optional[QueueSettings]

作业的队列设置。

方法

clear
copy
dump

将作业内容转储到 YAML 格式的文件中。

fromkeys

使用可迭代键并将值设置为 value 的新字典。

get

如果 key 在字典中,则返回 key 的值,否则返回默认值。

items
keys
pop

如果未找到密钥,则返回默认值(如果给定);否则,引发 KeyError。

popitem

删除并返回 (键、值) 对作为 2 元组。

对以 LIFO (后进先出) 顺序返回。 如果 dict 为空,则引发 KeyError。

set_limits

为 Command 设置限制。

set_queue_settings

为作业设置 QueueSettings。

set_resources

为 Command 设置资源。

setdefault

如果键不在字典中,则插入值为默认值的键。

如果 key 在字典中,则返回 key 的值,否则返回默认值。

sweep

将命令转换为具有额外扫描运行设置的扫描节点。 当前命令节点中的命令组件将用作其试用组件。 命令节点可以多次扫描,生成的扫描节点将共享同一试用组件。

update

如果 E 存在并且具有 .keys () 方法,则对于 E 中的 k: D[k] = E[k] 如果 E 存在且缺少 .keys () 方法,则 为 k,在 E 中为 v:D[k] = v 在任一情况下,这后跟:f 中的 k: D[k] = F[k] = F[k]

values

clear

clear() -> None.  Remove all items from D.

copy

copy() -> a shallow copy of D

dump

将作业内容转储到 YAML 格式的文件中。

dump(dest: str | PathLike | IO, **kwargs) -> None

参数

dest
Union[<xref:PathLike>, str, IO[AnyStr]]
必需

要向其写入 YAML 内容的本地路径或文件流。 如果 dest 是文件路径,则将创建一个新文件。 如果 dest 是打开的文件,则将直接写入该文件。

kwargs
dict

要传递给 YAML 序列化程序的其他参数。

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

fromkeys

使用可迭代键并将值设置为 value 的新字典。

fromkeys(value=None, /)

参数

type
必需
iterable
必需
value
默认值: None

get

如果 key 在字典中,则返回 key 的值,否则返回默认值。

get(key, default=None, /)

参数

key
必需
default
默认值: None

items

items() -> a set-like object providing a view on D's items

keys

keys() -> a set-like object providing a view on D's keys

pop

如果未找到密钥,则返回默认值(如果给定);否则,引发 KeyError。

pop(k, [d]) -> v, remove specified key and return the corresponding value.

popitem

删除并返回 (键、值) 对作为 2 元组。

对以 LIFO (后进先出) 顺序返回。 如果 dict 为空,则引发 KeyError。

popitem()

set_limits

为 Command 设置限制。

set_limits(*, timeout: int, **kwargs) -> None

参数

timeout
int

作业的超时时间(以秒为单位)。

示例

将命令的超时限制设置为 10 秒。


   from azure.ai.ml import Input, Output, command

   command_node = command(
       environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
       command='echo "hello world"',
       distribution={"type": "Pytorch", "process_count_per_instance": 2},
       inputs={
           "training_data": Input(type="uri_folder"),
           "max_epochs": 20,
           "learning_rate": 1.8,
           "learning_rate_schedule": "time-based",
       },
       outputs={"model_output": Output(type="uri_folder")},
   )

   command_node.set_limits(timeout=10)

set_queue_settings

为作业设置 QueueSettings。

set_queue_settings(*, job_tier: str | None = None, priority: str | None = None) -> None

参数

job_tier
Optional[str]

作业层。 接受的值为“Spot”、“Basic”、“Standard”或“Premium”。

priority
Optional[str]

计算中作业的优先级。 默认为“中”。

示例

在命令上配置队列设置。


   from azure.ai.ml import Input, Output, command

   command_node = command(
       environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
       command='echo "hello world"',
       distribution={"type": "Pytorch", "process_count_per_instance": 2},
       inputs={
           "training_data": Input(type="uri_folder"),
           "max_epochs": 20,
           "learning_rate": 1.8,
           "learning_rate_schedule": "time-based",
       },
       outputs={"model_output": Output(type="uri_folder")},
   )

   command_node.set_queue_settings(job_tier="standard", priority="medium")

set_resources

为 Command 设置资源。

set_resources(*, instance_type: str | List[str] | None = None, instance_count: int | None = None, locations: List[str] | None = None, properties: Dict | None = None, docker_args: str | None = None, shm_size: str | None = None, **kwargs) -> None

参数

instance_type
Optional[Union[str, list[str]]]

运行作业的计算实例的类型。 如果未指定,作业将在默认计算目标上运行。

instance_count
Optional[int]

要运行作业的实例数。 如果未指定,作业将在单个实例上运行。

locations
Optional[list[str]]

运行作业的位置列表。 如果未指定,作业将在默认计算目标上运行。

properties
Optional[dict]

作业的属性。

docker_args
Optional[str]

作业的 Docker 参数。

shm_size
Optional[str]

Docker 容器的共享内存块的大小。 这应采用 (number) (单位) 格式,其中数字必须大于 0,单位可以是 b (字节) 、k (千字节) 、m (兆字节) 或 g (千兆字节) 之一。

示例

在命令上设置资源。


   from azure.ai.ml import Input, Output, command

   command_node = command(
       environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
       command='echo "hello world"',
       distribution={"type": "Pytorch", "process_count_per_instance": 2},
       inputs={
           "training_data": Input(type="uri_folder"),
           "max_epochs": 20,
           "learning_rate": 1.8,
           "learning_rate_schedule": "time-based",
       },
       outputs={"model_output": Output(type="uri_folder")},
   )

   command_node.set_resources(
       instance_count=1,
       instance_type="STANDARD_D2_v2",
       properties={"key": "new_val"},
       shm_size="3g",
   )

setdefault

如果键不在字典中,则插入值为默认值的键。

如果 key 在字典中,则返回 key 的值,否则返回默认值。

setdefault(key, default=None, /)

参数

key
必需
default
默认值: None

sweep

将命令转换为具有额外扫描运行设置的扫描节点。 当前命令节点中的命令组件将用作其试用组件。 命令节点可以多次扫描,生成的扫描节点将共享同一试用组件。

sweep(*, primary_metric: str, goal: str, sampling_algorithm: str = 'random', compute: str | None = None, max_concurrent_trials: int | None = None, max_total_trials: int | None = None, timeout: int | None = None, trial_timeout: int | None = None, early_termination_policy: EarlyTerminationPolicy | str | None = None, search_space: Dict[str, Choice | LogNormal | LogUniform | Normal | QLogNormal | QLogUniform | QNormal | QUniform | Randint | Uniform] | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, queue_settings: QueueSettings | None = None, job_tier: str | None = None, priority: str | None = None) -> Sweep

参数

primary_metric
str

扫描目标的主要指标 - 例如 AUC (曲线下面积) 。 运行试用组件时必须记录该指标。

goal
str

扫描目标的目标。 接受的值为“最小化”或“最大化”。

sampling_algorithm
str

在搜索空间内使用的采样算法。 可接受的值为“random”、“grid”或“bayesian”。 默认为“random”。

compute
Optional[str]

要运行节点的目标计算。 如果未指定,将使用当前节点的计算。

max_total_trials
Optional[int]

要运行的试验总数的最大数目。 此值将覆盖 CommandJob.limits 中的值(如果指定)。

max_concurrent_trials
Optional[int]

扫描作业的最大并发试用数。

timeout
Optional[int]

最长运行持续时间(以秒为单位),在此持续时间后将取消作业。

trial_timeout
Optional[int]

扫描作业试用超时值(以秒为单位)。

early_termination_policy
Optional[Union[BanditPolicy, TruncationSelectionPolicy, MedianStoppingPolicy, str]]

扫描节点的提前终止策略。 可接受的值为“bandit”、“median_stopping”或“truncation_selection”。 默认值为“None”。

identity
Optional[Union[ ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]

作业在计算上运行时将使用的标识。

queue_settings
Optional[QueueSettings]

作业的队列设置。

job_tier
Optional[str]

实验 作业层。 接受的值为“Spot”、“Basic”、“Standard”或“Premium”。

priority
Optional[str]

实验 计算优先级。 接受的值为“low”、“medium”和“high”。

返回

一个扫描节点,其中当前 Command 节点中的组件作为其试用组件。

返回类型

示例

从命令作业创建扫描节点。


   from azure.ai.ml import command

   job = command(
       inputs=dict(kernel="linear", penalty=1.0),
       compute=cpu_cluster,
       environment=f"{job_env.name}:{job_env.version}",
       code="./scripts",
       command="python scripts/train.py --kernel $kernel --penalty $penalty",
       experiment_name="sklearn-iris-flowers",
   )

   # we can reuse an existing Command Job as a function that we can apply inputs to for the sweep configurations
   from azure.ai.ml.sweep import Uniform

   job_for_sweep = job(
       kernel=Uniform(min_value=0.0005, max_value=0.005),
       penalty=Uniform(min_value=0.9, max_value=0.99),
   )

   from azure.ai.ml.sweep import BanditPolicy

   sweep_job = job_for_sweep.sweep(
       sampling_algorithm="random",
       primary_metric="best_val_acc",
       goal="Maximize",
       max_total_trials=8,
       max_concurrent_trials=4,
       early_termination_policy=BanditPolicy(slack_factor=0.15, evaluation_interval=1, delay_evaluation=10),
   )

update

如果 E 存在并且具有 .keys () 方法,则对于 E 中的 k: D[k] = E[k] 如果 E 存在且缺少 .keys () 方法,则 为 k,在 E 中为 v:D[k] = v 在任一情况下,这后跟:f 中的 k: D[k] = F[k] = F[k]

update([E], **F) -> None.  Update D from dict/iterable E and F.

values

values() -> an object providing a view on D's values

属性

base_path

资源的基路径。

返回

资源的基路径。

返回类型

str

code

用于运行作业的源代码。

返回类型

command

设置要执行的命令。

返回类型

component

要为步骤运行的命令组件或作业的 ID 或实例。

返回

要为步骤运行的命令组件或作业的 ID 或实例。

返回类型

creation_context

资源的创建上下文。

返回

资源的创建元数据。

返回类型

distribution

分布式命令组件或作业的配置。

返回

分布式作业的配置。

返回类型

id

资源 ID。

返回

资源的全局 ID,Azure 资源管理器 (ARM) ID。

返回类型

identity

作业在计算上运行时将使用的标识。

返回

作业在计算上运行时将使用的标识。

返回类型

inputs

获取 对象的输入。

返回

包含 对象的输入的字典。

返回类型

log_files

作业输出文件。

返回

日志名称和 URL 的字典。

返回类型

name

获取节点的名称。

返回

节点的名称。

返回类型

str

outputs

获取 对象的输出。

返回

包含 对象的输出的字典。

返回类型

parameters

在作业期间要记录的 MLFlow 参数。

返回

作业期间要记录的 MLFlow 参数。

返回类型

queue_settings

命令组件或作业的队列设置。

返回

命令组件或作业的队列设置。

返回类型

resources

命令组件或作业的计算资源配置。

返回类型

services

节点的交互式服务。

这是一个实验性参数,随时可能会更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

返回类型

status

作业的状态。

返回的常见值包括“正在运行”、“已完成”和“失败”。 所有可能的值为:

  • NotStarted - 这是客户端 Run 对象在云提交之前处于的临时状态。

  • 正在启动 - 运行已开始在云中处理。 调用方此时具有运行 ID。

  • 预配 - 正在为给定的作业提交创建按需计算。

  • 准备 - 运行环境正在准备中,处于以下两个阶段之一:

    • Docker 映像生成

    • Conda 环境设置

  • 已排队 - 作业在计算目标上排队。 例如,在 BatchAI 中,作业处于排队状态

    等待所有请求的节点准备就绪时。

  • 正在运行 - 作业已开始在计算目标上运行。

  • 正在完成 - 用户代码执行已完成,运行处于后处理阶段。

  • 已请求取消 - 已请求取消作业。

  • 已完成 - 运行已成功完成。 这包括用户代码执行和运行

    后期处理阶段。

  • 失败 - 运行失败。 通常,运行上的 Error 属性会提供有关原因的详细信息。

  • 已取消 - 遵循取消请求并指示运行现已成功取消。

  • 未响应 - 对于启用了检测信号的运行,最近未发送任何检测信号。

返回

作业的状态。

返回类型

studio_url

Azure ML Studio 终结点。

返回

作业详细信息页的 URL。

返回类型

type

作业的类型。

返回

作业的类型。

返回类型