跳到内容

局部搜索

基础类: MetaOptimizer

LocalSearch 是一个用于在神经架构搜索 (NAS) 方法中执行局部搜索的类。它选择一个随机架构,生成其邻域,如果某个邻居具有更好的性能,则移动到该邻居。如果找不到更好的邻居,则选择一个新的随机架构。

属性

名称 类型 描述
using_step_function bool

标志,指示此优化器不存在步进函数。

config CfgNode

搜索过程的配置设置。

epochs int

搜索过程的 epoch 数量。

performance_metric Metric

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

dataset str

用于评估的数据集。

num_init int

初始随机架构的数量。

nbhd list

存储当前架构邻域的列表。

chosen Graph

当前选择的架构。

best_arch Graph

迄今为止找到的最佳架构。

history torch.nn.ModuleList

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

newest_child_idx int

历史记录中最近添加的子架构的索引。

__init__(config)

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

参数

名称 类型 描述 默认值
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_model_size()

获取模型的大小。

返回值

名称 类型 描述
float

模型的大小,单位为兆字节 (MB)。

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

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