小白带你了解移动平台轻量级网络

小白带你了解移动平台轻量级网络

移动平台的深度学习

  • ARM相关基础知识
  • 工具链
  • 体系结构
  • Neno和内存模型
  • TensorFlow和TensorFlow Life

适用于移动平台的轻量级网络

首先机器学习框架要适用于移动平台,首先需要了解和深度学习的技术充分利用硬件资源和实现硬件加速,另一个方面,还需要深度学习的模型本身就是改进,现在已经有很多经过改造后适用适用于移动平台的成熟模型。

众所周知,在有超巨大数据集的情况下,深度学习网络提升自身准确度的最好方法的加深网络,因为网络层次越深,理论上我们可以提取的高层特征就越多。除了加深网络外,我们还可以增加网络的参数数量,特征越多,我们可以用来分类或者计算的参考就越多。深度层网络和大量特征也为深度学习带来一个副作用,速度慢。网络层次越深。参数数量越多。那么训练和预测的时间越来越多。在一个巨大的分布式集群中,有非常大的资源可以帮助我们巨大的计算任务。但在移动平台上情况就不是这样。

移动平台在计算上非常受限,而我们需要解决的问题有何计算相关,如果直接将深度网络直接移植到移动平台。势必移动平台计算速度就更慢。甚至无法接受移动平台的内存限制。需要轻量级的网络来代替深度网络。尽量使用层次浅,参数少的网络来代替原来的深度网络。

SqueezeNet

最早的公开的轻量级网络 AlexNet和SqueezeNet具有相同的精确度

模型压缩,包括奇异值分解,权值剪枝,系统矩阵和霍尔曼编码等各类方法。

  • 微观结构

比如初级的lenet的做手写数值识别5X5卷积核,后来的VGGNet的3X3的卷积核,甚至在Google的inception的1X1卷积核,卷积核可以为

1X1和1X3或者1X5 3X1等,选用不同的模块组成不同的网络,经过不断的实验,希望通过多个小卷积来替代大的卷积核,以带来更好的效果。

  • 宏观结构

宏观结构调整就是调整网络的层次数和模块的组织方式。例如把第5层和第7层的激活输入到一个新层中。这种也可以叫做旁路连接。

核心思路

让我们看看SqueezeNet是如何做到模型压缩的。首先SqueezNet采用3个主要策略以保证网络的参数更少。

  • 使用1X1的卷积核和代替3X3的卷积核,以减少卷积层的参数数量,这样可以使用卷积层参数数量减少9倍。
  • 如果3X3的卷积核无法无法替代,那么就减少3X3卷积核的通道数量,比如将128X3X3的卷积核减少为32X3X3的卷积核减少到32X3X3,那么卷积层的参数数量就减少到4倍。
  • 在卷积层后接入降采样,以得到更大的激活图,也就是可以将卷积层的步长设置为大于1,步长越大,卷积运算跳过的数据就越多。

Squeeze使用的技巧

1)由于1X1和3X3的输出激活值得高度和宽度不等,因此输入3X3滤波器的数据会增加1和0的边界

2)激活层使用Relu代替Sigmoid,ReLu,最常见的形式为f(x)=max(0,x),ReLU的训练收敛速度比Sigmoid和tanh快很多

3)网络中不适用全连接层,全连接层的参数最多的层,需要二层神经元完全连接,如果n个神经元的层和m个神经元的层全连接,将会有m*n个参数,去掉全连接层会减少大参数。

4)训练开始的学习率为0.04,随着训练线性减少学习率。

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/keny88888/article/details/106769160
今日推荐