如何配置算法

神经网络架构搜索支持的算法列表

本页描述了 Katib 支持的神经网络架构搜索 (NAS) 算法及其配置方法。

NAS 算法

Katib 当前支持多种 NAS 搜索算法

高效神经网络架构搜索 (ENAS)

Katib 中的算法名称是 enas

ENAS 示例 — enas-gpu.yaml — 旨在展示所有可能的操作。由于搜索空间庞大,此示例不太可能产生良好结果。

Katib 支持 ENAS 的以下算法设置

设置名称类型默认值描述
controller_hidden_sizeint64RL 控制器 lstm 隐藏层大小。值必须 >= 1。
controller_temperaturefloat5.0RL 控制器用于采样 logits 的温度。值必须 > 0。将值设置为 "None" 以在控制器中禁用它。
controller_tanh_constfloat2.25RL 控制器 tanh 常量,用于防止过早收敛。值必须 > 0。将值设置为 "None" 以在控制器中禁用它。
controller_entropy_weightfloat1e-5RL 控制器应用于奖励的熵权重。值必须 > 0。将值设置为 "None" 以在控制器中禁用它。
controller_baseline_decayfloat0.999RL 控制器基线因子。值必须 > 0 且 <= 1。
controller_learning_ratefloat5e-5RL 控制器 Adam 优化器的学习率。值必须 > 0 且 <= 1。
controller_skip_targetfloat0.4RL 控制器概率,表示跳跃连接形成的先验信念。值必须 > 0 且 <= 1。
controller_skip_weightfloat0.8RL 控制器跳跃惩罚损失的权重。值必须 > 0。将值设置为 "None" 以在控制器中禁用它。
controller_train_stepsint50每个候选运行后 RL 控制器的训练步数。值必须 >= 1。
controller_log_every_stepsint10记录之前 RL 控制器的训练步数。值必须 >= 1。

可微分架构搜索 (DARTS)

Katib 中的算法名称是 darts

DARTS 示例 — darts-gpu.yaml

Katib 支持 DARTS 的以下算法设置

设置名称类型默认值描述
num_epochsint50模型训练的 epoch 数
w_lrfloat0.025用于训练模型权重的初始学习率。此学习率根据无重启的余弦退火策略衰减到 w_lr_min
w_lr_minfloat0.001用于训练模型权重的最小学习率。
w_momentumfloat0.9用于训练模型权重的动量。
w_weight_decayfloat3e-4模型权重衰减。
w_grad_clipfloat5.0裁剪模型权重梯度范数最大范数值。
alpha_lrfloat3e-4用于 alpha 权重的初始学习率。
alpha_weight_decayfloat1e-3Alpha 权重衰减。
batch_sizeint128数据集的批处理大小。
num_workersint4下载数据集的子进程数。
init_channelsint16初始通道数。
print_stepint50记录之前的训练或验证步数。
num_nodesint4DARTS 节点数。
stem_multiplierint3初始通道的乘数。用于第一个 stem 单元。

后续步骤

反馈

此页面有帮助吗?


最后修改于 2024年5月8日: Katib: 重组 Katib 文档 (#3723) (9903837)