如何配置算法

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

本页面描述了Katib支持的神经架构搜索(NAS)算法以及如何配置它们。

NAS 算法

Katib 目前支持几种用于 NAS 的搜索算法:

高效神经架构搜索 (ENAS)

Katib中的算法名称是 enas

ENAS 示例 — enas-gpu.yaml — 试图显示所有可能的操作。由于搜索空间很大,示例不太可能生成良好的结果。

Katib 支持以下 ENAS 算法设置:

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

可微分架构搜索 (DARTS)

Katib中的算法名称是 darts

DARTS 示例 — darts-gpu.yaml.

Katib 支持以下 DARTS 的算法设置:

设置名称类型默认值描述
num_epochsint50训练模型的轮数
w_lrfloat0.025Initial learning rate for training model weights. This learning rate annealed down to w_lr_min following a cosine schedule without restart.
w_lr_minfloat0.001训练模型权重的最小学习率。
w_momentumfloat0.9用于训练模型权重的动量。
w_weight_decayfloat3e-4训练模型的权重衰减。
w_grad_clipfloat5.0用于裁剪训练模型权重的梯度范数的最大范数值。
alpha_lrfloat3e-4alphas 权重的初始学习率。
alpha_weight_decayfloat1e-3阿尔法权重衰减。
batch_sizeint128数据集的批处理大小。
num_workersint4下载数据集的子进程数量。
init_channelsint16初始通道数。
print_stepint50记录之前的训练或验证步骤数。
num_nodesint4DARTS节点的数量。
stem_multiplierint3初始通道的乘数。它用于第一个干细胞。

下一步

反馈

此页面有帮助吗?