在神经网络架构搜索(NAS)的探索旅程中,我们已经构建了NAS管道的两个主要组件。之前我们创建了一个模型生成器,它能够将编码序列转化为多层感知机(MLP)模型,对其进行编译,从先前训练的架构中转移权重并训练新模型。还构建了用于NAS工具的控制器,通过长短期记忆网络(LSTM)控制器对架构序列进行采样,并探讨了如何在控制器中融入精度预测器。
一、NAS管道的整合
在本系列的最后一部分,我们将聚焦于如何让这两个组件协同工作。这涉及到自定义损失函数,以及如何使用REINFORCE梯度来训练控制器。同时,我们还会实现搜索逻辑,并介绍一些评估工具。
整体的NAS管道包括以下步骤:
- 控制器生成编码序列:使用控制器生成代表有效MLP架构的编码序列。
- 转化为实际模型:将编码序列转换为实际的MLP模型。
- 训练并记录精度:训练该MLP模型,并记录其验证准确率。
- 训练控制器:利用验证准确率和编码的模型架构来训练控制器本身,然后重复上述步骤。
我们已经了解了控制器如何完成第一步,以及模型生成器如何完成第二步和第三步,也编写了训练