轻量级神经网络架构

轻量级神经网络架构综述

论文地址轻量级神经网络架构综述

QQ邮箱

伴随着移动互联网的发展,越来越多的移动式应用层出不穷,为了在便携式设备上使用神经网络,需要减小模型的计算量和参数量,轻量型网络应运而生。

目前轻量级神经网络有三个方向:

  • 人工设计轻量化神经网络模型
  • 基于神经网络结构搜索 (Neural Network Search, NAS)
  • 神经网络模型的压缩

1 人工设计轻量化神经网络模型

1.1 使用小卷积核代替大卷积核

对于5x5大小的感受野,可以通过两个3x3大小的卷积实现,3x3卷积可以通过1x3和3x1卷积实现

1.2 限制中间特征的通道数

Fire module in Squeeze Net: 首先通过1x1卷积压缩通道数,然后通过1x1和3x3扩张通道数,先squeeze再expand

1.3 分解卷积运算

标准卷积操作是将一个卷积核用在输入特征的所有通道上,一方面参数量大,另一方面卷积运算存在很大冗余。深度可分离卷积则是对每个输入通道采用不同的卷积核,成为逐深度卷积,然后通过1x1的逐点卷积扩张通道数。

深度可分离卷积的计算量为标准卷积的1/9,用在了MobileNet系列上

深度可分离卷积的计算量主要集中在1x1的逐点卷积上,ShuffleNet提出了分组卷积,首先将输入通道数分组,在每个组内进行单独的卷积运算。为了增加组之间的信息流动,增加了混洗操作,使得新的分组包含之前各个组的特征。

原文地址:https://www.cnblogs.com/huanxifan/p/12688740.html

时间: 2024-10-25 22:09:04

轻量级神经网络架构的相关文章

(转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野生溪流分化成的湖泊和水洼,深度学习已经分化成了各种不同的专门架构. 并且,每个架构都会有一个图解,这里将详细介绍它们. 神经网络在概念上很简单,并且它们十分动人.在层级上,有着一堆同质化的元素和统一的单位,并且它们之间还存在在一系列的加权连接.这就是神经网络的所有,至少从理论上来说是这样.然而,时间

神经网络架构整理

新的神经网络架构随时随地都在出现,DCIGN,IiLSTM,DCGAN~ 1. 前向传播网络(FF 或 FFNN) 非常直接,它们从前往后传输信息(分别是输入和输出).神经网络通常都有很多层,包括输入层.隐藏层.输出层.单独一层不会有连接,一般相邻的两层是全部相连的(每一层的每个神经元都与另一层的每个神经元相连).最简单,从某种意义上说也是最实用的网络结构,有两个输入单元,一个输出单元,可以用来为逻辑关口建模.FFNN 通常用反向传播算法训练,因为网络会将“进来的”和“我们希望出来的”两个数据集

典型卷积神经网络架构

参考资料 0 Figures First 1 LeNet5 贡献 2 Dan Ciresan Net 3 AlexNet 贡献 4 VGG19 贡献 5 Network-in-network(NiN) 6 Inception V1-V3 贡献 参考资料 Neural Network Architectures CS231N Spring 2017 Lecture9 0 Figures First CNN架构演变 搬运一张图,总结的很好. Top1 vs operations, size ∝ pa

神经网络架构

机器学习(Machine Learning)有很多方面,当我开始研究学习它时,我发现了各种各样的"小抄",它们简明地列出了给定主题的关键知识点.最终,我汇集了超过 20 篇的机器学习相关的小抄,其中一些我经常会翻阅,而另一些我也获益匪浅.这篇文章里面包含了我在网上找到的 27 个小抄,如果你发现我有所遗漏的话,请告诉我. 机器学习领域的变化是日新月异的,我想这些可能很快就会过时,但是至少在目前,它们还是很潮的. 机器学习 这里有一些有用的流程图和机器学习算法表,我只包括了我所发现的最全

神经网络架构pytorch-MSELoss损失函数

MSELoss损失函数中文名字就是:均方损失函数,公式如下所示: 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数.因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量. 一般的使用格式如下所示: loss_fn = torch.nn.MSELoss(reduce=True, size_average=Tr

如何搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构可以正常推进. 项目的"辅助工具"包括协作平台,管理工具. 首先来说说 项目协作工具 比较老旧的团队协作,都是枯燥的会议记录,列表式的Task,还有附件形式的项目文档... 很多公司总是想通过这些方式来把控项目,认为有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 由于其枯燥性,"协作平台"仅仅变成了形式主义,最后反而成了项目的累赘. 那么,如

怎样搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构能够正常推进. 项目的"辅助工具"包含协作平台,管理工具. 首先来说说 项目协作工具 比較老旧的团队协作,都是枯燥的会议记录.列表式的Task,还有附件形式的项目文档... 非常多公司总是想通过这些方式来把控项目,觉得有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 因为其枯燥性,"协作平台"只变成了形式主义,最后反而成了项目的累赘. 那么,怎

怎样搭建轻量级架构-敏捷开发普及篇

搭建轻量级的架构.没有轻量级的开发原则是不行的. 传统的软件project理论是统一软件过程.统一软件过程说的简单点就是沟通.建模,开发,维护. 大家注意,这是一个一次性的过程,也就是每一个阶段必需要力求具体,确认功能的务必完好.然后一次性搞定. 所以依照传统的project理论,开发反而是一个可控性最高的阶段,依据前期"超级完好"的模型,程序猿全然是流水线工人.俗称码农! 假设依照这样的project理论去开发软件,两方在前期要耗费巨大的精力去建模.并且也不能保证在真正开发时.不会超

用spark训练深度神经网络

SparkNet: Training Deep Network in Spark 这篇论文是 Berkeley 大学 Michael I. Jordan 组的 ICLR2016(under review) 的最新论文,有兴趣可以看看原文和源码:paper,github . 训练深度神经网络是一个非常耗时的过程,比如用卷积神经网络去训练一个目标识别任务需要好几天来训练.因此,充分利用集群的资源,加快训练速度成了一个非常重要的领域.不过,当前非常热门的批处理计算架构(例如:MapReduce 和 S