你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Command 类
命令节点的基类,用于命令组件版本消耗。
不应直接实例化此类。 相反,应使用生成器函数:command () 创建它。
- 继承
-
azure.ai.ml.entities._builders.base_node.BaseNodeCommandazure.ai.ml.entities._job.pipeline._io.mixin.NodeWithGroupInputMixinCommand
构造函数
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 或实例。
- limits
- CommandJobLimits
命令组件或作业的限制。
- identity
- Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
命令作业在计算运行时将使用的标识。
- distribution
- Optional[Union[dict, PyTorchDistribution, MpiDistribution, TensorFlowDistribution, RayDistribution]]
分布式作业的配置。
- environment
- Optional[Union[str, Environment]]
运行作业的环境。
- 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
参数
要向其写入 YAML 内容的本地路径或文件流。 如果 dest 是文件路径,则将创建一个新文件。 如果 dest 是打开的文件,则将直接写入该文件。
- kwargs
- dict
要传递给 YAML 序列化程序的其他参数。
例外
如果 dest 是文件路径且文件已存在,则引发。
如果 dest 是打开的文件且文件不可写,则引发。
fromkeys
使用可迭代键并将值设置为 value 的新字典。
fromkeys(value=None, /)
参数
- type
- iterable
- value
get
如果 key 在字典中,则返回 key 的值,否则返回默认值。
get(key, default=None, /)
参数
- key
- default
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
参数
示例
在命令上配置队列设置。
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
参数
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
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”。
- 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]
作业的队列设置。
返回
一个扫描节点,其中当前 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
code
command
component
creation_context
distribution
分布式命令组件或作业的配置。
返回
分布式作业的配置。
返回类型
id
identity
作业在计算上运行时将使用的标识。
返回
作业在计算上运行时将使用的标识。
返回类型
inputs
log_files
name
outputs
parameters
queue_settings
resources
services
status
作业的状态。
返回的常见值包括“正在运行”、“已完成”和“失败”。 所有可能的值为:
NotStarted - 这是客户端 Run 对象在云提交之前处于的临时状态。
正在启动 - 运行已开始在云中处理。 调用方此时具有运行 ID。
预配 - 正在为给定的作业提交创建按需计算。
准备 - 运行环境正在准备中,处于以下两个阶段之一:
Docker 映像生成
Conda 环境设置
已排队 - 作业在计算目标上排队。 例如,在 BatchAI 中,作业处于排队状态
等待所有请求的节点准备就绪时。
正在运行 - 作业已开始在计算目标上运行。
正在完成 - 用户代码执行已完成,运行处于后处理阶段。
已请求取消 - 已请求取消作业。
已完成 - 运行已成功完成。 这包括用户代码执行和运行
后期处理阶段。
失败 - 运行失败。 通常,运行上的 Error 属性会提供有关原因的详细信息。
已取消 - 遵循取消请求并指示运行现已成功取消。
未响应 - 对于启用了检测信号的运行,最近未发送任何检测信号。
返回
作业的状态。