模型压缩,模型减枝,tf.nn.zero_fraction,统计0的比例,等。

     咱们刚接到一个项目时,一开始并非如何设计模型,而是去先跑一个现有的模型,看在项目需求在现有模型下面效果怎么样。当现有模型效果不错须要深刻挖掘时,仅仅时跑现有模型是不够的,好比,若是你要在嵌入式里面去实现,目前大多数模型大小和计算量都不知足,这就产生了模型压缩和剪枝。算法

     模型压缩常作的是将模型从float变为int8,这不只带来了模型参数空间上的减小,同时,是的不少较小的参数直接变为0,是的模型压缩能够变得比较小(通常是缩小到原来的20),可是这种方式下,压缩后的模型不必定能work,还得调整。网络

    模型剪枝,就是以为算法实现这个任务or功能,不必使用那么大的模型,可是目前深度学习的模型对咱们来讲仍是个“黑盒子”,怎样剪枝合适?这就可使用tf.nn.zero_fraction统计某个值的0的比例,这个tf.nn.zero_fraction计算出来的值越大,0的比例越高,说明这层网络种起做用的神经元个数越少。经过这个统计,咱们是否能够这样采起策略:学习

    一、网络层数不变,减小该层网络的卷积核个数,训练看效果。设计

    二、咱们将值为0占比高的网络砍掉,再训练查看效果。若是效果好,ok继续压缩,若是效果差,分析缘由:a、是不是网络减小了一层,致使感觉野变小了?能够尝试增大剩下网络的感觉野。b、是不是模型复杂度不够了?能够尝试增长剩下网络卷积核和特征图个数,适当弥补砍掉网络带来的复杂度下降。深度学习

 

固然,还有其余不少模型压缩,模型减枝的技巧方式,好比使用mobile net代替传统卷积神经网络等。io

相关文章
相关标签/搜索