你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
SweepJob 类
用于超参数优化的扫描作业。
- 继承
-
azure.ai.ml.entities._job.job.JobSweepJobazure.ai.ml.entities._job.sweep.parameterized_sweep.ParameterizedSweepSweepJobazure.ai.ml.entities._job.job_io_mixin.JobIOMixinSweepJob
构造函数
SweepJob(*, name: str | None = None, description: str | None = None, tags: Dict | None = None, display_name: str | None = None, experiment_name: str | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, inputs: Dict[str, int | str | float | bool | Input] | None = None, outputs: Dict[str, Output] | None = None, compute: str | None = None, limits: SweepJobLimits | None = None, sampling_algorithm: str | SamplingAlgorithm | None = None, search_space: Dict[str, Choice | LogNormal | LogUniform | Normal | QLogNormal | QLogUniform | QNormal | QUniform | Randint | Uniform] | None = None, objective: Objective | None = None, trial: CommandJob | CommandComponent | None = None, early_termination: BanditPolicy | MedianStoppingPolicy | TruncationSelectionPolicy | None = None, queue_settings: QueueSettings | None = None, **kwargs: Any)
参数
- name
- str
作业的名称。
- display_name
- str
作业的显示名称。
- description
- str
作业的说明。
- experiment_name
- str
将在下创建作业的试验的名称,如果提供“无”,则会在试验“默认”下创建作业。
训练作业在计算运行时将使用的标识。
- inputs
- dict
命令的输入。
- sampling_algorithm
- str
用于 search_space的超参数采样算法。 默认为“random”。
- search_space
- Dict
超参数搜索空间的字典。 键是超参数的名称,值是参数表达式。
- objective
- Objective
要优化的指标。
- compute
- str
运行作业的计算目标。
- trial
- Union[CommandJob, CommandComponent]
每个试用版的作业配置。 每个试用版都将提供系统从search_space采样的不同超参数值组合。
- early_termination
- Union[BanditPolicy, MedianStoppingPolicy, TruncationSelectionPolicy]
要使用的提前终止策略。 满足指定策略的条件时取消试运行作业。 如果省略此项,将不应用提前终止策略。
- limits
- <xref:azure.ai.ml.entities.SweepJobLimits>
扫描作业的限制。
- queue_settings
- QueueSettings
作业的队列设置。
- kwargs
- dict
其他配置参数的字典。
示例
创建 SweepJob
from azure.ai.ml.entities import CommandJob
from azure.ai.ml.sweep import BayesianSamplingAlgorithm, Objective, SweepJob, SweepJobLimits
command_job = CommandJob(
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",
)
sweep = SweepJob(
sampling_algorithm=BayesianSamplingAlgorithm(),
trial=command_job,
search_space={"ss": Choice(type="choice", values=[{"space1": True}, {"space2": True}])},
inputs={"input1": {"file": "top_level.csv", "mode": "ro_mount"}},
compute="top_level",
limits=SweepJobLimits(trial_timeout=600),
objective=Objective(goal="maximize", primary_metric="accuracy"),
)
方法
dump |
将作业内容转储到 YAML 格式的文件中。 |
set_limits |
为“扫描”节点设置限制。 如果不想更新相应的值,请将参数保留为“无”。 |
set_objective |
设置扫描对象。 如果不想更新相应的值,请将参数保留为“无”。 “最小化”、“最大化”。 :type 目标:str :关键字 (keyword) primary_metric:要优化的指标的名称。 :p aramtype primary_metric: str |
dump
将作业内容转储到 YAML 格式的文件中。
dump(dest: str | PathLike | IO, **kwargs) -> None
参数
要向其写入 YAML 内容的本地路径或文件流。 如果 dest 是文件路径,则将创建新文件。 如果 dest 是一个打开的文件,则该文件将直接写入。
- kwargs
- dict
要传递给 YAML 序列化程序的其他参数。
例外
如果 dest 是文件路径且文件已存在,则引发。
如果 dest 是打开的文件且文件不可写,则引发。
set_limits
为“扫描”节点设置限制。 如果不想更新相应的值,请将参数保留为“无”。
set_limits(*, max_concurrent_trials: int | None = None, max_total_trials: int | None = None, timeout: int | None = None, trial_timeout: int | None = None) -> None
参数
- max_concurrent_trials
- int
最大并发试用次数。
- max_total_trials
- int
最大试用总数。
- timeout
- int
扫描节点的总超时(秒)
- trial_timeout
- int
每次试用的超时(以秒为单位)
例外
如果 dest 是文件路径且文件已存在,则引发。
如果 dest 是打开的文件且文件不可写,则引发。
set_objective
设置扫描对象。 如果不想更新相应的值,请将参数保留为“无”。
“最小化”、“最大化”。 :type 目标:str :关键字 (keyword) primary_metric:要优化的指标的名称。 :p aramtype primary_metric: str
set_objective(*, goal: str | None = None, primary_metric: str | None = None) -> None
参数
- goal
定义超参数优化支持的指标目标。 可接受的值为:
例外
如果 dest 是文件路径且文件已存在,则引发。
如果 dest 是打开的文件且文件不可写,则引发。
属性
base_path
creation_context
early_termination
扫描作业的提前终止策略。
返回
扫描作业的提前终止策略。
返回类型
id
inputs
limits
log_files
outputs
sampling_algorithm
status
作业的状态。
返回的常见值包括“正在运行”、“已完成”和“失败”。 所有可能的值为:
NotStarted - 这是客户端 Run 对象在云提交之前处于的临时状态。
正在启动 - 运行已开始在云中处理。 调用方此时具有运行 ID。
预配 - 正在为给定作业提交创建按需计算。
准备 - 运行环境正在准备中,处于以下两个阶段之一:
Docker 映像生成
Conda 环境设置
已排队 - 作业在计算目标上排队。 例如,在 BatchAI 中,作业处于排队状态
等待所有请求的节点准备就绪时。
正在运行 - 作业已开始在计算目标上运行。
完成 - 用户代码执行已完成,运行处于后处理阶段。
已请求取消 - 已请求取消作业。
已完成 - 运行已成功完成。 这包括用户代码执行和运行
后期处理阶段。
失败 - 运行失败。 通常,运行上的 Error 属性会提供有关原因的详细信息。
已取消 - 遵循取消请求并指示运行现已成功取消。
未响应 - 对于启用了检测信号的运行,最近未发送任何检测信号。
返回
作业的状态。