MorphNet 是一种在训练过程中学习深度网络结构的方法,其核心理念是将网络结构学习问题进行连续松弛。简单来说,MorphNet 通过正则化器压缩网络中过滤器的影响,当它们变得足够小时,相应的输出通道会被标记为可从网络中移除。
MorphNet 和传统的神经网络优化不同,通过加入一些正则化器,专门针对消耗特定资源(如浮点运算次数FLOPs或模型大小)的部分进行约束优化。在训练损失中加入正则化损失,并通过随机梯度下降或相似的优化器最小化它们的和,形成了一个约束优化问题。这个方法最早被介绍在 CVPR 2018 的论文中。
FiGS 是一种基于概率的通道正则化方法,是当前推荐使用 MorphNet 的方法。它可以作为剪枝算法使用,也可以用作完整的可微分架构搜索的方法。在 MorphNet 的文档中通常被称为 LogisticSigmoid
正则化器。
设想你有一个可用于图像分类的卷积神经网络,并希望缩小模型以满足某些约束(如内存或延迟)。在已存在模型(“种子网络”)和目标标准下,MorphNet 会通过调整每个卷积层的输出通道数提出一个新的模型。
注意,MorphNet不会改变网络的拓扑结构——所提议的模型将与种子网络拥有相同的层数和连接模式。
使用步骤如下:
选择正则化器
morphnet.network_regularizers
中选择正则化器。选择基于你的目标成本(如 FLOPs 或延迟)以及你是否能够向模型添加新层:
LogisticSigmoid
的正则化器。