缩减网络模型大小

目前常见的神经网络模型,模型大小差不多都在百M以上,有的甚至有几G,几十G的大小。将深度学习的模型运用于移动设备,比如手机输入法,对图像做变换做艺术效果的app,效果毋庸置疑是好的,但由于模型的size太大,给深度学习在移动端的应用带来了困难。可以设想一下,如果一个手机的app需要加载一个500M甚至1G以上的模型恐怕不太容易被用户接受。
因此需要将大模型变成小模型,以供在移动设备上使用。
针对计算机视觉里面的CNN模型,可以做模型压缩,缩减模型大小。模型压缩的技术,可以分为四类:

  • 剪枝:神经网络是由一层一层的节点通过边连接,每个边上会有权重,所谓剪枝,就是当我们发现某些边上的权重很小,可以认为这样的边不重要,进而可以去掉这些边。在训练的过程中,在训练完大模型之后,看看哪些边的权值比较小,把这些边去掉,然后继续训练模型;

  • 权值共享:就是让一些边共用一个权值,达到缩减参数个数的目的。假设相邻两层之间是全连接,每层有1000个节点,那么这两层之间就有1000*1000=100万个权重参数。可以将这一百万个权值做聚类,利用每一类的均值代替这一类中的每个权值大小,这样同属于一类的很多边共享相同的权值,假设把一百万个权值聚成一千类,则可以把参数个数从一百万降到一千个。

  • 量化:一般而言,神经网络模型的参数都是用的32bit长度的浮点型数表示,实际上不需要保留那么高的精度,可以通过量化,比如用0~255表示原来32个bit所表示的精度,通过牺牲精度来降低每一个权值所需要占用的空间。

  • 神经网络二值化:比量化更为极致的做法就是神经网络二值化,也即将所有的权值不用浮点数表示了,用二进制的数表示,要么是+1,要么是-1,用二进制的方式表示,原来一个32bit权值现在只需要一个bit就可以表示,可以大大减小模型尺寸。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值