googlenet

GoogLeNet 之 Inception v1 v2 v3 v4

主宰稳场 提交于 2020-03-29 15:15:30
论文地址 Inception V1 : Going Deeper with Convolutions Inception-v2 : Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Inception-v3 : Rethinking the Inception Architecture for Computer Vision Inception-v4 : Inception-ResNet and the Impact of Residual Connections on Learning GitHub源码 Inception-v4 最原始的Google-net结构图 Inception V1 上图是论文中提出的最原始的版本,所有的卷积核都在上一层的所有输出上来做,那5×5的卷积核所需的计算量就太大了,造成了特征图厚度很大。为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低特征图厚度的作用,也就是Inception v1的网络结构。 Google Inception Net首次出现在ILSVRC 2014的比赛中(和VGGNet同年),就以较大优势取得了第一名

Pytorch1.0入门实战二:LeNet、AleNet、VGG、GoogLeNet、ResNet模型详解

别说谁变了你拦得住时间么 提交于 2020-03-13 11:34:46
LeNet   1998年, LeCun提出了第一个真正的卷积神经网络,也是整个神经网络的开山之作,称为 LeNet,现在主要指的是 LeNet5或 LeNet-5,如图1.1所示。它的主要特征是将卷积层和下采样层相结合作为网络的基本机构,如果不计输入层,该模型共 7层,包括 2个卷积层, 2个下采样层, 3个全连接层。 图1.1   注:由于在接入全连接层时,要将池化层的输出转换成全连接层需要的维度,因此,必须清晰的知道全连接层前feature map的大小。卷积层与池化层输出的图像大小,其计算如图 1.2所示。 图1.2   本次利用 pytorch实现整个 LeNet模型,图中的 Subsampling层即可看作如今的池化层,最后一层(输出层)也当作全连接层进行处理。 1 import torch as torch 2 import torch.nn as nn 3 class LeNet(nn.Module): 4 def __init__(self): 5 super(LeNet,self).__init__() 6 layer1 = nn.Sequential() 7 layer1.add_module('conv1',nn.Conv2d(1,6,5)) 8 layer1.add_module('pool1',nn.MaxPool2d(2,2)) 9 self

GoogLeNet Inception v3 结构 及 pytorch、tensorflow、keras、paddle实现UC Merced Land Use Dataset识别

拈花ヽ惹草 提交于 2020-03-08 07:09:36
背景 google在InceptionV1之后,又发表文章《 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 》、《 Rethinking the Inception Architecture for Computer Vision 》,前者提出了广泛使用的 Batch Normalization方法,后者提出了 InceptionV2、InceptionV3结构,通过在InceptionV1的基础上逐步改进得到V2,最后汇总所有的改进策略得到V3。 使用RMSprop优化器,而非SGD优化器 使用Batch Normalization,将每一层的输入尽量规范化,在辅助分类器中也使用BN 分步卷积,将大尺寸的卷积核分解为多个小卷积核,减少计算量、提升计算速度 卷积与池化并行进行降维,减少参数量的同时 避免表征瓶颈(representational bottlenecks) 使用Label Smoothing进行训练,减轻预测中非最大概率值的惩罚 网络结构 网络结构如上图,在 Inception部分 ,表格与文字部分不一致,尽量 以 图片 部分为准 ,同时借鉴 tensorflow官方实现代码 文字表述 : 在35*35部分有3个传统模块

图像分类经典论文阅读笔记3:GoogLeNet-Going deeper with convolutions

醉酒当歌 提交于 2020-03-01 15:29:28
1.概述 GoogLeNet(Inception V1)采用 模块化 结构,包括500万个参数(AlexNet参数量的十二分之一),网络包括5层卷积层(每层由卷积层或Inception结构堆叠构成)和一个全连接层,共计 22 层。因此,在计算资源或内存有限时,GoogLeNet是比较好的选择。 论文研究目标:利用 赫布(Hebbian)定理 和 多尺度处理 直觉设计增加深度和宽度并提高计算资源利用率的稀疏网络结构; 赫布定理:神经元一起激发,一起连接(即视觉信息在不同尺度上处理然后聚合); 评价准则:top-1错误率和top-5错误率:6.67%(取得ILSVRC2014比赛分类项目冠军); 数据库:ILSVRC2014,预处理操作: 零均值化 。 2.网络结构 一般来说, 提升网络性能最直接的办法就是增加网络的深度和宽度,深度是指网络层次数量、宽度是指神经元数量 。但是这种方法存在以下问题: (1)参数太多,如果训练数据集有限,容易产生过拟合; (2)网络越大,参数越多,计算复杂度越大; (3)网络越深,容易出现梯度消失问题,难易优化模型。 解决上述问题的方法自然就是在增加网络深度和宽度的同时减少网络参数,那么如何 减少参数 ? (1)使用2个3X3卷积代替1个5X5卷积,使用3个3X3卷积代替1个7X7卷积(感受野相同); (2)通过1X1卷积降维; (3

deep learning 经典网络模型之Alexnet、VGG、Googlenet、Resnet

爷,独闯天下 提交于 2020-02-25 19:01:29
CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服。当时有流传的段子是Hinton的学生在台上讲paper时,台下的机器学习大牛们不屑一顾,质问你们的东西有理论推导吗?有数学基础吗?搞得过SVM之类吗?回头来看,就算是真的,大牛们也确实不算无理取闹,是骡子是马拉出来遛遛,不要光提个概念。 时间终于到了2012年,Hinton的学生Alex Krizhevsky在寝室用GPU死磕了一个Deep Learning模型,一举摘下了视觉领域竞赛ILSVRC 2012的桂冠,在百万量级的ImageNet数据集合上,效果大幅度超过传统的方法,从传统的70%多提升到80%多。个人觉得,当时最符合Hinton他们心境的歌非《我不做大哥好多年》莫属。 这个Deep Learning模型就是后来大名鼎鼎的AlexNet模型。这从天而降的AlexNet为何能耐如此之大?有三个很重要的原因: 大量数据,Deep Learning领域应该感谢李飞飞团队搞出来如此大的标注数据集合ImageNet; GPU,这种高度并行的计算神器确实助了洪荒之力,没有神器在手,Alex估计不敢搞太复杂的模型; 算法的改进,包括网络变深、数据增强、ReLU、Dropout等,这个后面后详细介绍。

图像分类(动手学深度学习)

狂风中的少年 提交于 2020-02-23 04:28:15
图像分类 本教程源代码目录在 book/image_classification , 初次使用请参考 PaddlePaddle 安装教程 ,更多内容请参考本教程的 视频课堂 。 背景介绍 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。在本教程中,我们专注于图像识别领域的一个重要问题,即 图像分类 。 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。 图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。 一般来说,图像分类通过手工特征或特征学习方法对整个图像进行全部描述,然后使用分类器判别物体类别,因此如何提取图像的特征至关重要。 在深度学习算法之前使用较多的是基于词袋(Bag of Words)模型的物体分类方法。 词袋方法从自然语言处理中引入,即一句话可以用一个装了词的袋子表示其特征,袋子中的词为句子中的单词、短语或字。对于图像而言,词袋方法需要构建字典。最简单的词袋模型框架可以设计为 底层特征抽取 、 特征编码 、 分类器设计 三个过程。 Now: 而基于深度学习的图像分类方法,可以通过有监督或无监督的方式 学习

VGG,NIN and GoogLeNet

混江龙づ霸主 提交于 2020-02-20 12:05:19
第一次使用kaggle的notebook,可以免费使用gpu还是挺爽的,不过就是不了解读取数据集的路径到底是怎么用的?感觉 /root/Datasets/里面的数据集不是主页面的Datasets 加强记忆:计算卷积,池化的H,W conv:W/H_new = (W/H_old + 2*padding - kernel_size) / stride +1 (padding是上下左右对称加的) pad: W/H_new = (W/H_old - kernel_size) / stride + 1 VGG 使用重复元素的网络 VGG的计算单位是一个Block,每一个Block都有数个:数个相同的填充为1、窗口形状为3 * 3的卷积层,接上一个步幅为2、窗口形状2 * 2的最大池化层。 卷积层保持输入的高和宽不变,而池化层则对其减半。 def vgg_block ( num_convs , in_channels , out_channels ) : #卷积层个数,输入通道数,输出通道数 blk = [ ] for i in range ( num_convs ) : if i == 0 : blk . append ( nn . Conv2d ( in_channels , out_channels , kernel_size = 3 , padding = 1 ) ) else :

【深度学习系列】用PaddlePaddle和Tensorflow实现GoogLeNet InceptionV2/V3/V4

不羁的心 提交于 2020-02-17 08:15:59
我想做的,是通过“ NN、 LeNet、 AlexNet、 VGGNet、 GoogleNet”的基本结构的实现,强化基础。 首先是资料的整理,然后是计划的提出。这里的基础学习是第一部分,后面我才能提出更详细准确的计划。在实现的过程中,不仅是juypter,我希望能够有原生代码,因为我需要做落地的。 然后,结合着paddle上的视频,特别是charlott77的视频来学习,并且做相应笔记。 easydl https://ai.baidu.com/easydl/app/overview 0217-0223 【深度学习系列】PaddlePaddle之手写数字识别 (10.23更新)这篇文章是开篇,重点在于手写网络,搞懂其中每一个部分。我需要补强Python方面能力,然后重现这里的例子。我应该是在PaddlePaddle和tf.keras上同步来做。 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理 (11.1更新) 【深度学习系列】PaddlePaddle之数据预处理 (11.8更新) 【深度学习系列】卷积神经网络详解(二)——自己手写一个卷积神经网络 (11.22更新) 0224-0301 【深度学习系列】用PaddlePaddle和Tensorflow进行图像分类 (11.29更新) 0302-0308 【深度学习系列

深度学习福利入门到精通第四讲——GoogleNet模型

萝らか妹 提交于 2020-02-03 00:45:55
2014年ILSVRC大赛中分类第一名就是GoogleNet模型,网络深度22层,而且在网络中加入Inception单元, 证明通过使用Inception单元构造的深层卷积神经网络能进一步提升模型整体的性能。结构如下 下面就是googlenet中用的inception结构, 最常用的卷积核是3*3和5*5,那么这里的1*1其实用途是特征图通道的增加和减少。 假设有50*50*100的特征图,三参数分别宽、高、深度,输入到1*1卷积层,卷积核1*1*100,想输出深度为90的特征图,在90次卷积操作之后维度50*50*100的特征图就变成了50*50*90的特征图,如果需要105的深度,就进行105次卷积,所以用1*1卷积控制深度,从而影响卷积参数数量,提升模型性能。 在googlenet中使用Inception实现了卷积神经网络搭建的模块化,如果想增加或减少模型深度,只需增加或减少相应inception单元就可以。 来源: CSDN 作者: cold星辰 链接: https://blog.csdn.net/qq_32146369/article/details/104147675

将不同类别的CNN方法进行总结(只选取部分经典模型)

大兔子大兔子 提交于 2020-01-16 16:51:14
#写在查找文献之前。因为自己实在是太小白了,无论对深度学习还是生医图像,要在短短时间内解决问题可真不容易啊。简直是,两眼一抹黑Orz 无可奈何,只好慢慢来呗......此算我第一篇在CSDN上的笔记,如果有总结的不对的地方不知道会不会有路过的大神捞起+提示啊QAQ。。。好,话不多说,从此开始写日记↓# 第一个总结:来自公众号的科普 https://www.jiqizhixin.com/articles/2019-01-25-6 根据架构修改的类型,CNN 可以大致分为 7 类:基于空间利用、深度、多路径、宽度、通道提升、特征图利用和注意力的 CNN。 下面,我对其中几种相对知名的架构进行总结。 其中有对此篇总结的参考的摘录: https://www.cnblogs.com/skyfsm/p/8451834.html 1.1 基于空间利用的 CNN(spatial exploitation based CNNs) 此类CNN 考虑输入像素的邻域(局部性),可以使用不同大小的滤波器来探索不同级别的相关性。 LeNet:LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 这张想必就是搜索CNN最常得到的图啦(我在最初学习时也看到了它)。其中,