正则化演化
Bases: MetaOptimizer
RegularizedEvolution 是一个类,它实现了用于神经架构搜索 (NAS) 的正则化演化算法。
属性
名称 | 类型 | 描述 |
---|---|---|
using_step_function |
bool
|
指示此优化器不存在步进函数的标志。 |
config |
CfgNode
|
包含搜索过程设置的配置节点。 |
epochs |
int
|
搜索过程的 epoch 数。 |
sample_size |
int
|
每个种群需要抽样的架构数量。 |
population_size |
int
|
演化搜索中种群的最大规模。 |
performance_metric |
Metric
|
用于评估架构的性能指标。 |
dataset |
str
|
用于评估的数据集。 |
population |
collections.deque
|
用于存放架构种群的队列。 |
history |
torch.nn.ModuleList
|
用于存储架构历史的列表。 |
__init__(config)
使用配置设置初始化 Regularized Evolution 类。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
config |
CfgNode
|
搜索过程的配置设置。 |
必需 |
adapt_search_space(search_space, scope=None, dataset_api=None, **kwargs)
调整搜索空间以进行正则化演化搜索。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
search_space |
Graph
|
需要调整的搜索空间。 |
必需 |
scope |
str
|
搜索的范围。默认为 None。 |
None
|
dataset_api |
dict
|
数据集的 API。默认为 None。 |
None
|
get_checkpointables()
获取可以进行检查点(checkpoint)的模型。
返回值
名称 | 类型 | 描述 |
---|---|---|
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
|
是否报告当前最优(incumbent)或最新架构。默认为 True。 |
True
|
返回值
名称 | 类型 | 描述 |
---|---|---|
tuple |
一个元组,包含训练准确率、验证准确率、测试准确率和训练时间。 |