常用深度学习模型介绍(1)
参考:https://blog.csdn.net/xbinworld/article/details/45619685
参考:https://blog.csdn.net/fate_fjh/article/details/53446630(FCN模型)
参考:https://blog.csdn.net/zyqdragon/article/details/72353420
LeNet模型(包括输入层在内共有8层):
模型结构如下:
第一层:输入层是32x32大小的图像
第二层:C1层是一个卷积层,6个feature map,5x5大小的卷积核,每个feature map共有(32-5+1)*(32-5+1)即28x28个神经元,每个神经元都与输入层的5x5大小的区域相连,即C1层有(5x5+1)x6=156个训练参数(5为卷积核权重,1为bias偏置项权重,共6个feature map),两层间的连接数为156x(28x28)=122304个,通过卷积运算来强化特征,减少噪音。
第三层:S2是池化层,共6个14x14的feature map,对应的池化大小为2x2,(按照书上的解释)这里的池化层的计算过程和普通的池化层有点差异,这里采用对上一层卷积层的2x2大小的数值求和得到xi,再经wxi+b计算后进行激活函数处理得到结果,这里的连接数为(4+1)x(14x14)x6=5880。
第四层:C3层是一个卷积层,采用5x5的卷积核,这里的feature map的神经元个数为(14-5+1)x(14-5+1)=10x10,这里有16个feature map,每个feature map由上一层的feature map之间进行不同组合。(现在大部分的卷积层都是和所有的上一层所有的feature map相连接,表现为每个feature map和卷积核内积后求和并加偏置项,得到输出的单个feature map中对应的数值)
第五层:S4是一个池化层,由16个5x5的feature map组成
第六层:C5是一个卷积层,同样使用5x5的卷积核,该层有120个feature map
第七层:F6全连接层有84个feature map,每个feature map只有一个神经元与C5全相连,该层计算输入向量和权重向量间的点积和偏置,然后传递给sigmoid函数计算。
第八层:输出层也是全连接层,共10个节点,分别代表数字0-9
AlexNet模型:
该模型总共有8层,前五层是卷积层,后三层是全连接层,最后一个全连接层的输出具有1000个输出的softmax。
第一个卷积层conv1中,Alexnet采用96个11x11x3的kernel(对应下图中的num_output),在stride为4的情况下对224x224x3的图像进行滤波,即通过11x11的卷积模板在3个通道上,间隔为4个像素的采样频率对图像进行卷积操作。
对于每个feature map来说,间隔为4,因此map核大小为(224/4-1)55x55。在得到基本的卷积数据后,通过relu、norm变换、池化操作作为输出传递到下一层。经过池化之后的feature map大小转化为(55/2)27x27,本层feature map的个数为96个。
第二个卷积通过256个5x5的卷积模板卷积得到(pad表示周边的0填充)。过程和第一层的conv1类似,(按照他人博客的意思)这里的group的目的在于将前面的feature map分开,卷积部分分成2部分来做,每组针对27x27x48的像素进行卷积运算。步长为1。其中,池化运算的尺度为3x3,运算步长为2,因而得到池化之后的feature map大小为13x13。 过程作图表示如下:
第三个卷积层的过程和第二个卷积层类似。这里采用384个卷积模板来进行操作,每个像素层都通过上下左右pad=1来进行填充,这里的2组像素层被送到2个不同的GPU中进行运算,每个GPU有192个卷积核,每个卷积核的尺寸为3x3x128。因此,每个GPU中的
卷积核都可以2组13x13x128的像素层的所有数据进行卷积运算。经计算后,得到2组GPU中总计13x13x384个卷积后的像素层。
第四层的输入为上一层的输出(即2组GPU的总计13x13x384的像素层),每个GPU中各有192个卷积核,每个卷积核的尺寸为13x13x192,其余部分同上。
第五层的输入为第四层输出的2组13x13x192的像素层,同上,这里也分为2个group,每组的卷积核的个数为128,卷积核的尺寸大小为13x13x192,经卷积计算后的卷积核尺寸大小为13x13x128,2组GPU总计13x13x256的卷积核。
经过核大小为3,步长为2的池化层处理后尺寸大小为(13-3)/2+1=6,即得到2组6x6x128的像素层,合计为6x6x256的像素层。
第六层为全连接层,这里的输入数据的尺寸大小为6x6x256,通过6x6x256尺寸的滤波器对输入数据进行卷积运算,每个6x6x256尺寸的滤波器对第六层的输入数据进行运算得到1个结果;共有4096个6x6x256尺寸的滤波器对输入数据进行卷积运算,
通过4096个神经元输出运算结果。再经relu激活函数得到4096个值,后通过dropout层输出4096个本层的输出结果。由于这一层的滤波器尺寸6x6x256和待处理的feature map的6x6x256的尺寸相同,也就是说滤波器的每个系数只和feature map中的一个
系数相乘,因此该层也称为全连接层。
第七层也为全连接层。第六层的输出的4096个数据和第七层的4096个神经元进行全连接,后经relu处理、dropout处理,输出4096个数据。
第七层的4096个数据和第八层的1000个神经元进行全连接,经过训练后输出被训练的数值。
其中,Alexnet模型的各层发挥的作用如下表所示:
多GPU训练:提高训练速度
非线性激活函数:使用Relu非线性函数收敛更快,用Relu替代Sigmoid是因为Relu的SGD收敛速度比Sigmoid/tanh快很多,主要原因是Relu是线性的、非饱和的,只需要一个阈值就可以得到激活值。
dropout:减少过拟合
LRN局部相应归一化:有助于模型的泛化
重叠池化:提高精度、减少过拟合
转载于:https://www.cnblogs.com/xiaochouk/p/9047838.html
常用深度学习模型介绍(1)相关推荐
- Intro to Deep Learning Backpropagation 深度学习模型介绍及反向传播算法推导详解
文章目录 往期文章链接目录 Deep Learning v.s. Machine Learning Forward Propagation Loss functions of neural netwo ...
- 4个提高深度学习模型性能的技巧
点击上方"AI遇见机器学习",选择"星标"公众号 原创干货,第一时间送达 深度学习是一个广阔的领域,但我们大多数人在构建模型时都面临一些共同的难题 在这里,我们 ...
- 【NLP-NER】命名实体识别中最常用的两种深度学习模型
命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务.NER是信息提取.问答系统.句法分析.机器翻译等众多NLP任务的重要基础工具. 上一期我们介绍了N ...
- 深度学习模型部署简要介绍
一.模型部署简介 近几年来,随着算力的不断提升和数据的不断增长,深度学习算法有了长足的发展.深度学习算法也越来越多的应用在各个领域中,比如图像处理在安防领域和自动驾驶领域的应用,再比如语音处理和自然语 ...
- Jetson Xavier、Jetson TX2、 1080(Ti)、2080显卡运行深度学习模型性能对比(英伟达开发平台VS常用显卡)
前言: 英伟达的Jetson TX2使得很多人认为深度学习模型终于可以像嵌入式开发平台那样做到小型化了,不用再跑在高配计算机或者服务器上面了,但是实际上Jetson TX2开发板的性能 ...
- 深度学习模型轻量化(下)
深度学习模型轻量化(下) 2.4 蒸馏 2.4.1 蒸馏流程 蒸馏本质是student对teacher的拟合,从teacher中汲取养分,学到知识,不仅仅可以用到模型压缩和加速中.蒸馏常见流程如下图所 ...
- 一文看懂深度学习模型压缩和加速
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 1 前言 近年来深度学习模型在计算机视 ...
- 如何部署深度学习模型?
应用背景介绍 早在遥远的1989年,一家叫做ALVIVN的公司首次将神经网络用在汽车上,进行车道线检测和地面分割.时至今日,深度学习已经应用在自动驾驶系统的多个分支领域.首先是感知领域,常用的传感器有 ...
- 如何将深度学习模型部署到实际工程中?(分类+检测+分割)
应用背景介绍 早在遥远的1989年,一家叫做ALVIVN的公司首次将神经网络用在汽车上,进行车道线检测和地面分割.时至今日,深度学习已经应用在自动驾驶系统的多个分支领域.首先是感知领域,常用的传感器有 ...
最新文章
- iOS - OC NSUserDefaults		数据存储
- 买台式电脑还是笔记本好?
- 信号与系统第四章-第六章习题易错点整理
- Part2_1 Urllib的get请求和post请求
- 中国杀菌剂行业需求趋势与投资战略规划研究报告2021-2027年版
- 吃下去的东西老是往上翻上来_这间日日火爆的面馆,当年海藻带宋思明吃过
- c#窗口科学计算机,c#窗口科学计算器连等如何实现,大神帮忙一下好么?
- Socket套接字 =======================
- mysql数据库备份工具expdb_expdp 备份数据库
- python给excel排序_如何使用Python对Excel工作表排序
- nullnullicon 小图标
- C++ 动态开辟二维数组的的方法
- android开发actionbar,Android 开发之为ActionBar 添加Actionbar Button
- window10系统下载软件教程
- UEFI开发与调试---ImageHandle和ControllerHandle
- psd2html 阿里,psd2html
- 最小割的必须割边和可行割边
- layui实现报表数据
- 中山大学曾兆阳_实习派 | 曾兆阳: “宝藏男孩”的进阶之路
- linux tomcat 无法关闭 :8005端口未启动
热门文章
- python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...
- 零基础学python这本书怎么样-看了这本基础教程的书籍你还担心你的python学不好吗?...
- python不能处理excel文件-别以为Python的pandas不能处理非规范Excel数据
- python面向对象编程的优点-Python面向对象编程
- python怎么导入文件-Python模块导入详解
- 关于python中requests模块导入问题-Python中requests模块的核心使用(1)
- python读取excel-Python Pandas读取修改excel操作攻略
- c++强大还是python强大-2020,你该学习Python还是C++
- 编程python用什么软件比较好-新手入门Python编程的8个实用建议
- python写web难受-用python写脚本此页面上造成web运行速度减慢