跳到内容

随机搜索

基类:MetaOptimizer

RandomSearch 是一个类,实现了用于神经架构搜索(NAS)的随机搜索算法。它派生自 MetaOptimizer 类。随机搜索通过随机采样 'k' 个架构并对其进行 'n' 个 epoch 的训练来完成,然后选择最佳架构。在 DARTS 论文中,对于 CIFAR-10 数据集,'k' 等于 24,'n' 等于 100。

属性

名称 类型 描述
using_step_function bool

指示此优化器没有步进函数的标志。

performance_metric Metric

用于评估架构的性能指标。

dataset str

用于评估的数据集。

fidelity int

每个采样架构的训练 epoch 数。

device torch.device

用于计算的设备,可以是 CUDA 或 CPU。

sampled_archs list

用于存储采样架构的列表。

history torch.nn.ModuleList

用于存储架构历史记录的列表。

__init__(config)

使用配置设置初始化 RandomSearch 类。

参数

名称 类型 描述 默认
config CfgNode

搜索过程的配置设置。

必需

adapt_search_space(search_space, scope=None, dataset_api=None)

为随机搜索调整搜索空间。

参数

名称 类型 描述 默认
search_space Graph

需要调整的搜索空间。

必需
scope str

搜索的范围。默认为 None。

None
dataset_api dict

数据集的 API。默认为 None。

None

get_checkpointables()

获取可以进行检查点的模型。

返回值

名称 类型 描述
dict

一个字典,其中键为 "model",值为架构的历史记录。

get_final_architecture()

从搜索中获取最终(最佳)架构。

返回值

名称 类型 描述
Graph

在搜索期间找到的最佳架构。

get_op_optimizer()

获取操作的优化器。此方法在此类中未实现,调用时会引发错误。

引发

类型 描述
NotImplementedError

总是,因为此方法在此类中未实现。

new_epoch(epoch)

在搜索过程中开始一个新的 epoch,采样一个新的架构进行训练。

参数

名称 类型 描述 默认
epoch int

当前的 epoch 编号。

必需

test_statistics()

报告测试统计信息。

返回值

名称 类型 描述
float

最佳架构的原始性能指标。

train_statistics(report_incumbent=True)

报告训练后的统计信息。

参数

名称 类型 描述 默认
report_incumbent bool

是否报告当前的最佳架构或最近的架构。默认为 True。

True

返回值

名称 类型 描述
tuple

一个包含训练准确率、验证准确率、测试准确率和训练时间的元组。