【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

深度学习、图像分类入门,从VGG16卷积神经网络开始 刚开始接触深度学习、卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一、我认为学习卷积神经网络必须知道的几个概念: 1、卷积过程:   我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大 阅读详情

文章首发于微信公众号《与有三学AI》

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

从本篇开始,我们将带领大家解读深度学习中的网络的发展

这是深度学习模型解读第一篇,本篇我们将介绍LeNet,AlexNet,VGGNet,它们都是卷积+池化串联的基本网络结构。

作者&编辑 | 言有三

 

01 LeNet5

      LeNet5【1】有3个卷积层,2个池化层,2个全连接层。卷积层的卷积核都为5*5,stride=1,池化层都为Max pooling,激活函数为Sigmoid,具体网络结构如下图:

下面我们详细解读一下网络结构,先约定一些称呼。

我们先约定一些叫法,比如featuremap为28*28*6,卷积参数大小为(5*5*1)*6。其中28*28是featuremap的高度,宽度,6是featuremap的通道数。(5*5*1)*6卷积核表示5*5的高度,宽度,通道数为1的卷积核有6个。你可以把(5*5*1)想象成一个厚度为1,长度,宽度各为5的卷积块,以下依此类推。

1.Input

   输入图像统一归一化为32*32。

2.C1卷积层

   经过(5*5*1)*6卷积核,stride=1, 生成featuremap为28*28*6。

3.S2池化层

   经过(2*2)采样核,stride=2,生成featuremap为14*14*6。

4.C3卷积层

   经过(5*5*6)*16卷积核,stride=1,生成featuremap为10*10*16。

5.S4池化层

    经过(2*2)采样核,stride=2,生成featuremap为5*5*16。

6.C5卷积层    

   经过(5*5*16)*120卷积核,stride=1, 生成featuremap为1*1*120。

7.F6全连接层

   输入为1*1*120,输出为1*1*84,总参数量为120*84。

8.Output全连接层 。  

   输入为1*1*84,输出为1*1*10,总参数量为84*10。10就是分类的类别数。

 

02  AlexNet

2012年,Imagenet比赛冠军—Alexnet (以第一作者Alex命名)【2】直接刷新了ImageNet的识别率,奠定了深度学习在图像识别领域的优势地位。网络结构如下图:

1.Input

   输入图像为227*227*3。

2.Conv1

   经过(11*11*3)*96卷积核,stride=4, (227-11)/4+1=55,生成featuremap为55*55*96。

3.Pool1

   经过3*3的池化核,stride=2,(55-3)/2+1=27,生成featuremap为27*27*96。

4.Norm1

   local_size=5,生成featuremap为27*27*96。

5.Conv2

   经过(5*5*96)*256的卷积核,pad=2,group=2,(27+2*2-5)/1+1=27,生成featuremap为27*27*256。

6.Pool2

   经过3*3的池化核,stride=2,(27-3)/2+1=13,生成featuremap为13*13*256。

7.Norm2

   local_size=5, 生成featuremap为13*13*256。

8.Conv3

   经过(3*3*256)*384卷积核,pad=1, (13+1*2-3)/1+1=13,生成featuremap为13*13*384。

9.Conv4

   经过(3*3*384)*384卷积核,pad=1,(13+1*2-3)/1+1=13,生成featuremap为13*13*384。

10.Conv5

     经过(3*3*384)*256卷积核,pad=1,(13+1*2-3)/1+1=13,生成featuremap为13*13*256。

11.Pool5

     经过(3*3)的池化核,stride=2,(13-3)/2+1=6,生成featuremap为6*6*256。

12.Fc6

     输入为(6*6*256)*4096全连接,生成featuremap为1*1*4096。

13.Dropout6

     在训练的时候以1/2概率使得隐藏层的某些神经元的输出为0,这样就丢掉了一半节点的输出,BP的时候也不更新这些节点,以下Droupout同理。

14.Fc7

     输入为1*1*4096,输出为1*1*4096,总参数量为4096*4096。

15.Dropout7

     生成featuremap为1*1*4096。

16.Fc8

     输入为1*1*4096,输出为1000,总参数量为4096*1000。

 

总结:

1.网络比LeNet更深,包括5个卷积层和3个全连接层。

2.使用relu激活函数,收敛很快,解决了Sigmoid在网络较深时出现的梯度弥散问题。

3.加入了dropout层,防止过拟合。

4.使用了LRN归一化层,对局部神经元的活动创建竞争机制,抑制反馈较小的神经元放大反应大的神经元,增强了模型的泛化能力。

5.使用裁剪翻转等操作做数据增强,增强了模型的泛化能力。预测时使用提取图片四个角加中间五个位置并进行左右翻转一共十幅图片的方法求取平均值,这也是后面刷比赛的基本使用技巧。

6.分块训练,当年的GPU没有这么强大,Alexnet创新地将图像分为上下两块分别训练,然后在全连接层合并在一起。

7.总体的数据参数大概为240M。

 

03 VGG

VGGNet【3】主要的贡献是利用带有很小卷积核(3*3)的网络结构对逐渐加深的网络进行评估,结果表明通过加深网络深度至16-19层可以极大地改进前人的网络结构。这些发现也是参加2014年ImageNet比赛的基础,并且在这次比赛中,分别在定位和分类跟踪任务中取得第一名和第二名。

VGGNet的网络结构如下图:

类型从A到E。此处重点讲解VGG16。也就是图中的类型D。如图中所示,共有13个卷积层,3个全连接层。其全部采用3*3卷积核,步长为1,和2*2最大池化核,步长为2。

1.Input层

   输入图片为224*224*3。

2.CONV3-64

   经过(3*3*3)*64卷积核,生成featuremap为224*224*64。

3.CONV3-64

   经过(3*3*64)*64卷积核,生成featuremap为224*224*64。

4.Max pool

   经过(2*2)max pool核,生成featuremap为112*112*64。

5.CONV3-128。

   经过(3*3*64)*128卷积核,生成featuremap为112*112*128。

6. CONV3-128

    经过(3*3*128)*128卷积,生成featuremap为112*112*128。

7.Max pool

   经过(2*2)maxpool,生成featuremap为56*56*128。

8.CONV3-256

   经过(3*3*128)*256卷积核,生成featuremap为56*56*256。

9.CONV3-256

   经过(3*3*256)*256卷积核,生成featuremap为56*56*256。

10.CONV3-256

     经过(3*3*256)*256卷积核,生成featuremap为56*56*256。

11.Max pool

     经过(2*2)maxpool,生成featuremap为28*28*256

12.CONV3-512

     经过(3*3*256)*512卷积核,生成featuremap为28*28*512

13.CONV3-512

     经过(3*3*512)*512卷积核,生成featuremap为28*28*512。

14.CONV3-512

     经过(3*3*512)*512卷积核,生成featuremap为28*28*512。

15.Max pool

     经过(2*2)maxpool,生成featuremap为14*14*512。

16.CONV3-512

     经过(3*3*512)*512卷积核,生成featuremap为14*14*512。

17.CONV3-512

    经过(3*3*512)*512卷积核,生成featuremap为14*14*512。

18.CONV3-512

    经过(3*3*512)*512卷积核,生成featuremap为14*14*512。

19.Max pool

    经过2*2卷积,生成featuremap为7*7*512。

20.FC-4096

    输入为7*7*512,输出为1*1*4096,总参数量为7*7*512*4096。

21.FC-4096

    输入为1*1*4096,输出为1*1*4096,总参数量为4096*4096。

22.FC-1000

    输入为1*1*4096,输出为1000,总参数量为4096*1000。

 

总结:

1. 共包含参数约为550M。

2. 全部使用3*3的卷积核和2*2的最大池化核。

3. 简化了卷积神经网络的结构。

 

04 总结

LeNet5是早期用于工程应用的网络结构,发展到AlexNet,激活函数从sigmoid变为relu,加入了Dropout层等操作,引起了新一轮的深度学习热潮。VGG基本是AlexNet的加强版,深度上是其2倍,参数量大小也是两倍多。

这三个网络结构本质上都是(卷积+池化)堆叠的网络结构,是深度学习复兴以来的第一个有重大工程意义的网络设计系列。

 

参考文献

【1】Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

【2】Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.

【3】Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.

同时,在我的知乎专栏也会开始同步更新这个模块,欢迎来交流

https://zhuanlan.zhihu.com/c_151876233

注:部分图片来自网络

—END—

转载请留言,侵权必究

本系列的完整目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI!

 

 

Python自动化:3分钟搞定微信收藏链接批量导出到TXT(附完整代码) 本文介绍如何使用Python自动化工具在3分钟内将微信收藏链接批量导出到TXT文件。通过模拟人类操作和OCR技术,脚本高效处理大量链接,显著提升工作效率,并附有完整代码和实战避坑指南。 阅读详情

相关推荐

Zigbee开发环境搭建:从驱动安装到程序烧录全指南

本文提供了一份详尽的Zigbee开发环境搭建全指南,涵盖从驱动安装到程序烧录的完整流程。重点介绍了使用SmartRF Flash Programmer和仿真器进行程序下载的关键步骤,并详细说明了USB转串口驱动的配置方法,帮助开发者快速构建稳定的Zigbee开发基础。

weixin_29195217的博客 395

一位深度学习小萌新的学渣笔记(三)VGG网络介绍及代码详解

VGG网络结构详解与模型的搭建 简单介绍VGG 经常用的是16层结构????13层个卷积层以及3个全连接层 网络亮点:通过堆叠多个3x3 的卷积核来以替代大尺度卷积核(减少所需参数) model.py中代码解读 train.py代码解读 predict.py ...

IntMain45的博客 2627

用Cursor+Node.js零代码搭建健康数据仪表盘:从数据录入到可视化全流程

本文详细介绍了如何利用Cursor AI编程助手和Node.js,无需手动编写代码,即可构建个人健康数据仪表盘的全流程。通过自然语言指令,实现从数据录入、存储到动态图表可视化的完整系统,展示了AI驱动开发在降低技术门槛、提升开发效率方面的强大能力。

gitlab7runner的博客 700

机器学习之(七)卷积神经网络

内容列表: 结构概述用来构建卷积神经网络的各种层 卷积层汇聚层归一化层全连接层将全连接层转化成卷积层 卷积神经网络的结构 层的排列规律层的尺寸设置规律案例学习(LeNet / AlexNet / ZFNet / GoogLeNet / VGGNet)计算上的考量 拓展资源 卷积神经网络(CNNs / ConvNets) 卷积神经网络和上一章讲的常规神经网络非常相似

qwj的博客 1万+

从网口变压器到TVS管:手把手设计通过4KV浪涌的以太网电路

本文详细解析工业级以太网接口4KV浪涌防护设计,从网口变压器选型到TVS管布局,提供通过IEC61000-4-5标准测试的完整方案。重点介绍Bob Smith电路优化和PCB设计技巧,帮助工程师有效应对雷电感应和设备开关瞬态干扰,确保工业设备稳定运行。

study的专栏 289

华为面试手撕真题【字符串压缩】

华为面试手撕真题【字符串压缩】

MISAYAONE的博客 1万+

vgg卷积网络过程细节详解

由于是从Word文档直接复制过来,其中格式如果乱码或者不通顺,请评论区告知我 参考链接:https://www.jianshu.com/p/2728610a6130 解释一下上图的内容:表中A,A-LRN,B,C,D,E分别代表各种网络名称,对应为vgg11,包含LRN(Local Response Normalisation)的vgg11,vgg13,vgg16, vgg16(全conv3版本)以及vgg19。其中网络名称的数字代表网络的深度,如vgg11就是有11层的vgg网络。需要说明的是,这里的.

Lininggggggg的博客 4627

CUDA-GDB(11)——调试示例演练

本博客包含三个CUDA-GDB的演练示例: ​​​​▶ Example: bitreverse ▶ Example: autostep ▶ Example: MPI CUDA Application

AI-安全-功耗 1515

动手学深度学习—含并行连结的网络GoogLeNet(代码详解)

GoogLeNet一共使用9个Inception块和全局平均汇聚层的堆叠来生成其估计值,Inception块之间的最大汇聚层可降低维度。Inception块可以说是“集百家之长”,它由四条并行路径组成,不同的路径提取不同的信息在通道合并层进行合并。GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进,并且获得了不错的效果。将Inception想象成滤波器的组合,不同尺寸的滤波器可以有效识别不同范围的图像细节。在Inception块中,通常调整的超参数是每层输出通道数。

qq_38473254的博客 701

破晓之光:GTK#框架让C# WinForm程序跨平台运行的终极指南

GTK#框架的出现,彻底打破了C# WinForm只能在Windows上运行的桎梏。

墨夶的博客 605

SimSwap复现指引及代码分析【2023有更新】

我的环境!!!😚😚😚 之后会遇到:还会遇到至此环境配置完毕!下面是所需要的checkpoint。至此环境准备结束。先试试环境是否有问题,图片是代码包中给的。我用的是512的checkpoint,无水印,a是源脸,b是目标脸。输出到./output/result_whole_swapsingle.jpg 如图是可以成功换脸的:(为了方便查看将图像裁剪到了128x128) 表示图像预处理,相应的改为也是一样。不加就是对已经面部对齐的图像进行简单的面部交换。 加上就是无水印。 交换一张图片中的所有面孔。

zik的博客 2050

有三 AI 学习

模型解读 从LeNet到VGG,看卷积+池化串联的网络结构 https://zhuanlan.zhihu.com/p/40791280 NIN中的1*1卷积,你懂了吗 https://zhuanlan.zhihu.com/p/41590396 Inception结构,你看懂了吗 https://zhuanlan.zhihu.com/p/41691301 说说移动端基准模型MobileNets h...

xyz2107605729的博客 499

openclaw中文版安装教程和常用命令

OpenClaw 中文版的和,涵盖本地一键部署、Docker 隔离部署、阿里云极速部署三种方式,以及六大类高频命令,方便你快速上手和日常运维。

suny8的专栏 3009

深度学习(2)——经典的CNN网络结构(LeNet\AlexNet\GoogleNet\VGG\ResNet)

本文主要讲解几类熟知的基础的神经网络种类,主要是…… CNN设计准则 输入特征矩阵——卷积操作重复N次——功能层——输出向量,一般来说随着网络层数的加深,特征图的尺寸减小,通道数(深度)增加。(参考上一节写的卷积后的特征图尺寸计算公式) 经典网络的发展历史 第一代: 第二代: 第三代: 经典网络结构解读 1.LeNet-5 由input层可知,输入的是灰度图,尺寸为32×32; 经过一层kernel size为28×28的6channel卷积得到输出; 做下采样操作……全连接层分别有120个神经元

weixin_41761357的博客 1199

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【完结】总结12大CNN主流模型架构设计思想

文章首发于微信公众号《有三AI》 【完结】总结12大CNN主流模型架构设计思想 专栏《CNN模型解读》正式完结了,在这一个专栏中,我们给大家回顾了深度学习中的各类具有代表性的CNN模型,详细分析了各类模型的特点,设计思想。当然,这一个系列不可能包含所有的模型,但是我们可以从中洞见最核心的思想。如果有必要,以后我们还会进行补充的。 作者|言有三 编辑|言有三 01从LeN...

hacker_long的专栏 1862

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

「完结」总结12大CNN主流模型架构设计思想

http://blog.sina.com.cn/s/blog_cfa68e330102zocn.html 专栏《CNN模型解读》正式完结了,在这一个专栏中,我们给大家回顾了深度学习中的各类具有代表性的CNN模型,详细分析了各类模型的特点,设计思想。当然,这一个系列不可能包含所有的模型,但是我们可以从中洞见最核心的思想。后续的内容请大家移步有三AI知识星球。 作者 | 言有三 编辑 | ...

喜欢打酱油的老鸟 626

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习网络——卷积神经网络

卷积神经网络之间的比较 LeNet:LeNet可以在早期的小数据集上取得好的成绩,但是在更大的真实数据集上的表现并不尽如人意。 一方面,神经网络计算复杂,20世纪90年代没有像之后GPU那样的大量普及,因此训练一个多通道,多层和大量参数的卷积神经网络在当年很难完成; 另一方面,当年研究者还没有大量深入研究参数初始化和非凸优化算法等诸多领域,导致复杂的神经网络的训练通常较困难。 AlexNet:AlexNet使用了8层卷积神经网络,并以很大的优势赢得了ImageNet 2012图像识别挑战赛。它首次证明 了

guanlily123的博客 675

深度学习500问——Chapter04:经典网络解读(2)

VGGNet是由牛津大学视觉几何小组(Visual Geometry Group,VGG)提出的一种深层卷积网络结构,它们以7.32%的错误率赢得了2014年ILSVRC分类任务的亚军(冠军由GoogLeNet以6.65%的错误率夺得)和25.32%的错误率夺得定位任务(Localization)的第一名(GooleNet错误率为26.44%)[5],网络名称VGGNet取自该小组名缩写。

不要给自己设限,尝试更多可能(思所向 皆可往) 1616

【模型解读】pooling去哪儿了?

文章首发于微信公众号《与有三学AI》 【模型解读】pooling去哪儿了? 这是深度学习模型解读第5篇,本篇我们将介绍深度学习模型中的pooling。 作者&编辑 | 言有三 01 概述 相信大家都记得,LeNet5,AlexNet,Vgg系列的核心思想,是convolution+pooling的核心结构。 但是,不知道从何时开始,pooling没了,对,就...

hacker_long的专栏 614

深度学习——CNN

学习内容主要来源于【Pytorch框架与经典卷积神经网络与实战】 https://www.bilibili.com/video/BV1e34y1M7wR/?share_source=copy_web&vd_source=2d4a5dc5bb70ee9a749abd01192995f0

2501_93855189的博客 393

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 972

【超详细小白必懂】如何实现两个神经网络串联

【超详细小白必懂】如何实现两个神经网络串联。假如有两个神经网络Net1和Net2,我们将介绍如何实现Net1的输出作为Net2的输出(即将两个网络串联起来)

weixin_52527544的博客 6395

卷积神经网络VGGNet的分析以及总结

1.  前序VGGNet的名称来源于VisualGeometry Group,它是牛津大学的计算机视觉组。VGGNet的论文题目是:VeryDeep Convolutional Networks For Large-Scale Image Recognition. 本文主要罗列一些VGGNet的创新点。最主要的贡献点:发现使用小尺寸的卷积核能够设计比较深的网络。2.  卷积神经网络架构训练图像的大...

Jadelyw的博客 4439

关于SSD训练时默认框输出层输出通道num_output的计算

申明,本博文是为解决以下两个问题而撰写。 Check failed: num_priors_ * num_loc_classes_ * 4 == bottom[0]->channels() (264348 vs. 88116) Number of priors must match number of location predictions. Check failed: num_pr

xunan003的博客 6872

【深度学习】卷积与池化

4. 神经网络 网络模型: 4. 1卷积 4.1.1 概念 卷积就是通过卷积核与输入相乘再相加。它可以获取图像的局部特征。因此卷积核也被称为滤波器。 卷积时参数的计算公式: 分类 膨胀卷积(Dilated Convolutions) 引入了膨胀率(dilation rate)。 膨胀率是核中每个值之间的距离。一个膨胀率为2的3x3的核与一个5x5的核有相同的视野,唯一的区别就是3*3的核只有9个参数。 膨胀卷积的好处是在相同的计算成本下,提供了更宽的可视域。膨胀卷积在实时分割领域非常流行。 当

冷芝士鸭的学习笔记 1万+

【论文笔记】VGG

总体的体系结构 训练阶段,输入为固定的224x224的RGB图像。唯一做的预处理是对每个像素减去训练集中的RGB均值。卷积核使用3x3,在我们的一种配置中也有使用1x1的情况,这可以看作是对输入通道的一个线性变换(其后面接一个非线性变换)。步长固定为一像素。padding用来保持卷积后图像的原来大小分辨率。空间池化包含五个最大池化层,它们接在部分卷积层的后面,(并不是所有卷积层都接有最大池化层)。...

DLUT_yan的博客 4052
上一篇: 【数据】深度学习从“数据集”开始
下一篇: 【模型解读】network in network中的1*1卷积,你懂了吗
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值