lenet

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

linux下caffe的命令运行脚本

半腔热情 提交于 2020-03-09 09:01:16
参考:https://www.cnblogs.com/denny402/p/5076285.html 首先编译: make -j8 make pycaffe 注:下面的--solver=.... 等价于 -solver .... ########################## -solver:必选参数 ################### set -e ./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt -gpu 2 #gpu 2表示用第2块gpu运行,如果设置为"-gpu all"表示使用所有的gpu运行 ######################-snapshot:可选参数,-gpu:可选参数 ############# #加上断点的训练 set -e ./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt \ --snapshot=examples/mnist/snapshot/lenet_solver_iter_400.solverstate ######################## -weights:可选参数 ################# #用预先训练好的权重来fine

DataWhale组队打卡学习营task04-3 LeNet

眉间皱痕 提交于 2020-03-08 09:43:35
lenet 模型介绍 lenet 网络搭建 运用lenet进行图像识别-fashion-mnist数据集 Convolutional Neural Networks 使用全连接层的局限性: 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。 使用卷积层的优势: 卷积层保留输入形状。 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。 LeNet 模型 LeNet分为卷积层块和全连接层块两个部分。下面我们分别介绍这两个模块。 卷积层块里的基本单位是卷积层后接平均池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的平均池化层则用来降低卷积层对位置的敏感性。 卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用 的窗口,并在输出上使用sigmoid激活函数。第一个卷积层输出通道数为6,第二个卷积层输出通道数则增加到16。 全连接层块含3个全连接层。它们的输出个数分别是120、84和10,其中10为输出的类别个数。 下面我们通过Sequential类来实现LeNet模型。 #import import sys sys . path . append ( "/home/kesci/input" ) import d2lzh1981 as d2l

动手学深度学习——卷积神经网络2 LeNet

自古美人都是妖i 提交于 2020-03-04 00:02:26
白嫖伯禹平台,还是要感谢一下,打波广告。 主要是学习笔记, 解决问题的可以忽略本博客,以免浪费时间与精力 主要介绍 三个方面 lenet 模型介绍 lenet 网络搭建 运用lenet进行图像识别-fashion-mnist数据集 LeNet 模型 LeNet分为卷积层块和全连接层块两个部分。下面我们分别介绍这两个模块。 模型结构如下 包括:输入层,两层卷积层,两层全连接隐藏层,和一个全连接输出层 卷积层块里的基本单位是卷积层后接平均池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的平均池化层则用来降低卷积层对位置的敏感性。 卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用 5×5 的窗口,并在输出上使用sigmoid激活函数。第一个卷积层输出通道数为6,第二个卷积层输出通道数则增加到16。 全连接层块含3个全连接层。它们的输出个数分别是120、84和10,其中10为输出的类别个数。 下面我们通过Sequential类来实现LeNet模型。 #import import sys sys.path.append("/home/kesci/input") import d2lzh1981 as d2l import torch import torch.nn as nn import torch.optim as optim import time

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等,这个后面后详细介绍。

5.5 卷积神经网络(LeNet)

♀尐吖头ヾ 提交于 2020-02-20 03:10:19
在“多层感知机的从零开始实现”一节里我们构造了一个含单隐藏层的多层感知机模型来对Fashion-MNIST数据集中的图像进行分类。每张图像高和宽均是28像素。我们将图像中的像素逐行展开,得到长度为784的向量,并输入进全连接层中。然而,这种分类方法有一定的 局限性。 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。假设输入是高和宽均为 1 , 000 1,000 1 , 0 0 0 像素的彩色照片(含3个通道)。即使全连接层输出个数仍是256,该层权重参数的形状也是 3 , 000 , 000 × 256 3,000,000\times 256 3 , 0 0 0 , 0 0 0 × 2 5 6 :它占用了大约3 GB的内存或显存。这会带来过于复杂的模型和过高的存储开销。 卷积层尝试解决这两个问题。 卷积层保留输入形状,使图像的像素在高和宽两个方向上的相关性均可能被有效识别; 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。 卷积神经网络就是含卷积层的网络。本节里我们将介绍一个早期用来识别手写数字图像的卷积神经网络:LeNet。这个名字来源于LeNet(1994)论文的第一作者Yann LeCun

动手学深度学习之lenet

妖精的绣舞 提交于 2020-02-18 16:33:39
参考伯禹学习平台《动手学深度学习》课程内容内容撰写的学习笔记 原文链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/lesson/cuwTT4MTwpHpKfaKKDcYQt 感谢伯禹平台,Datawhale,和鲸,AWS给我们提供的免费学习机会!! 总的学习感受:伯禹的课程做的很好,课程非常系统,每个较高级别的课程都会有需要掌握的前续基础知识的介绍,因此很适合本人这种基础较差的同学学习,建议基础较差的同学可以关注伯禹的其他课程: 数学基础:https://www.boyuai.com/elites/course/D91JM0bv72Zop1D3 机器学习基础:https://www.boyuai.com/elites/course/5ICEBwpbHVwwnK3C course content lenet 模型介绍 lenet 网络搭建 运用lenet进行图像识别-fashion-mnist数据集 Convolutional Neural Networks 使用全连接层的局限性:(数据集中图像大小28*28,展开成一个764) 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。 使用卷积层的优势: 卷积层保留输入形状。

CNN:LeNet-5

牧云@^-^@ 提交于 2020-02-05 10:14:44
LeNet-5共包含8层 ![在这里插入图片描述](https://img- C1层是一个卷积层,由6个特征图Feature Map构成。特征图中每个神经元与输入为55的邻域相连。特征图的大小为2828,这样能防止输入的连接掉到边界之外(32-5+1=28)。C1有156个可训练参数(每个滤波器55=25个unit参数和一个bias参数,一共6个滤波器,共(55+1)6=156个参数),共156(28*28)=122,304个连接。 S2层是一个下采样层,有6个1414的特征图。特征图中的每个单元与C1中相对应特征图的22邻域相连接。S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。每个单元的22感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。S2层有12(6(1+1)=12)个可训练参数和5880(1414(2*2+1)*6=5880)个连接。 C3层也是一个卷积层,它同样通过5x5的卷积核去卷积层S2,然后得到的特征map就只有10x10个神经元,但是它有16种不同的卷积核,所以就存在16个特征map了。 C3中每个特征图由S2中所有6个或者几个特征map组合而成。为什么不把S2中的每个特征图连接到每个C3的特征图呢?原因有2点。第一,不完全的连接机制将连接的数量保持在合理的范围内。第二,也是最重要的

CNN网络结构的发展:从LeNet到EfficientNet

若如初见. 提交于 2020-01-20 01:18:16
CNN基本部件介绍 1. 局部感受野 在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱。因此,其实每个神经元没必要对图像全局进行感知,只需要感知局部信息,然后在更高层局部信息综合起来即可得到全局信息。卷积操作即是局部感受野的实现,并且卷积操作因为能够权值共享,所以也减少了参数量。 2. 池化 池化是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。 3. 激活函数 激活函数的用是用来加入非线性。常见的激活函数有sigmod, tanh, relu,前两者常用在全连接层,relu常见于卷积层 4. 全连接层 全连接层在整个卷积神经网络中起分类器的作用。在全连接层之前需要将之前的输出展平 经典网络结构 1. LeNet5 由两个卷积层,两个池化层,两个全连接层组成。卷积核都是5×5,stride=1,池化层使用maxpooling 2. AlexNet 模型共八层(不算input层),包含五个卷积层、三个全连接层。最后一层使用softmax做分类输出 AlexNet使用了ReLU做激活函数;防止过拟合使用dropout和数据增强;双GPU实现;使用LRN 3. VGG 全部使用3×3卷积核的堆叠,来模拟更大的感受野,并且网络层数更深。VGG有五段卷积,每段卷积后接一层最大池化。卷积核数目逐渐增加。 总结:LRN作用不大

Caffe的运行mnist手写数字识别

倾然丶 夕夏残阳落幕 提交于 2020-01-04 16:37:49
老规矩,首先附上官方教程: http://caffe.berkeleyvision.org/gathered/examples/mnist.html 注:关于caffe的安装教程请看我的上一篇文章 1、必要软件   因为Caffe中使用的是Linux才能运行的shell脚本,因此首先的安装 wget (将wget放入C:\windows\system32)和 Git 方能运行。 2、而后按照官方教程,首先进入caffe路径的根目录,而后打开cmd输入命令: ./data/mnist/get_mnist.sh 这个命令是通过打开/data/mnist目录下的get_mnist.sh脚本来下载mnist的数据,若cmd出现错误可以直接进入打开get_mnist.sh脚本效果是一样的,运行完成后会出现如下4个数据文件: 而后继续输入以下命令,或者进入路径打开也一样 ./examples/mnist/create_mnist.sh 若不存在该文件可以自己创建一个create_mnist.sh,具体的代码如下(注:第九行BUILD可能老版本的路径会不一样,根据自己路径来修改): #!/usr/bin/env sh # This script converts the mnist data into lmdb/leveldb format, # depending on the value