Convolutional Neural Networks(1): Architecture
Concolutional Neural Networks(CNN)同样使用三层结构,但结构上同Feedforward Neural Network有很大不同,其结构如下图:

Input layer: 对单张图片来说,输入数据是3D的(Width*Length*Depth),见下方的立体图。但如果我们使用mini-batch去训练神经网络的话,则input变为了4D数据(Width*Length*Depth*Batch_size)。

Feature-extraction layers:Convolution layer(+Relu)和Pooling layer成对出现,进行高阶映射和特征提取。如下图所示,对于单张图片(3D data)来说,使用Filter(也叫Kernel,可以看成是一个Sliding Window,一般尺寸比数据要小)去扫描该图片并做卷积。通常情况下,从input volumn到Convolutional Layer,数据的Width和Length有了少许的减少,而the 3rd Dimension Depth,则被扩张了,因为有多个Kernels。在中间的过程中,可以看到经过Filter以后,depth变成了6,证明有6个Filter,将原先Depth=3扩展到了6。而后通过pooling layer,Width和Length又被进一步压缩,在这里一般使用Average,或者Maximum去压缩。

Classification layer:在最终输出层之前,会有一个Fully-connected layer,形式和Feedfoward Neural Network的Hidden layer是一样的,与前一Pooling layer的Neurons做全连接,与输出层的Output nodes也做全连接,一层或多层根据需要。
Output layer:用Softmax输出概率或根据需要输出其他形式。如果使用了Mini batch,则输出是2D的(Probabilities*Batch_size)。
实际工作流程,可以用下例来说明:
a. Input是32*32的(depth=1)
b.在Layer1中有6个kernel,Convolution之后有6个28*28的Activation Map,经过Pooling(Subsample)四选一之后,变成了6*14*14.
c.Layer2中有16个kernel,Convolution之后有16个10*10的Activation Map,经过Pooling(Subsample)四选一之后,变成了16*5*5.
d.C5是含有120个neurons的全连接层,F6是输出层

Convolutional Neural Networks(1): Architecture的更多相关文章
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
- (转)A Beginner's Guide To Understanding Convolutional Neural Networks
Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...
- 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016 本文提出了一种新的CNN 框架来处理 ...
- 卷积神经网络Convolutional Neural Networks
Convolutional Neural Networks NOTE: This tutorial is intended for advanced users of TensorFlow and a ...
- 深度卷积神经网络用于图像缩放Image Scaling using Deep Convolutional Neural Networks
This past summer I interned at Flipboard in Palo Alto, California. I worked on machine learning base ...
- [转] Understanding Convolutional Neural Networks for NLP
http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 讲CNN以及其在NLP的应用,非常 ...
- (zhuan) Building Convolutional Neural Networks with Tensorflow
Ahmet Taspinar Home About Contact Building Convolutional Neural Networks with Tensorflow Posted on a ...
- [转]An Intuitive Explanation of Convolutional Neural Networks
An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...
- Understanding Convolutional Neural Networks for NLP
When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs ...
随机推荐
- python RE表达式规则剩余规则
前面我学习了 ’.‘ '^' '$' '*' '+' '?' 基本针对单个字符的,学习python 表达式规则剩余规则. 1,{m} 匹配前一个字符m次 2,{n,.m} 匹配前一个字符n到m次 3 ...
- Python 函数知识总汇
函数在一个程序起到很重要的作用,那么如何学好函数呢,那函数有什么内容的,总结一下函数的知识归类 1,函数定义 def 函数名(): print("...") 2,函数返回值 re ...
- C# XML 解析包含特殊字符的内容
xml结构会解析一些特殊字符,特别是& < ,导致XmlDocument 解析错误 解决方法:将内容放在<![CDATA[ ]]>中,例如<![CDATA[2]] ...
- Git基本常用指令
开发十年,就只剩下这套架构体系了! >>> Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目 ...
- spark复习笔记(7):sparkSQL
一.saprkSQL模块,使用类sql的方式访问Hadoop,实现mr计算,底层使用的是rdd 1.hive //hadoop mr sql 2.phenoix //hbase上构建sql的交互过 ...
- 提升JAVA代码的好“味道”
让代码性能更高 需要 Map 的主键和取值时,应该迭代 entrySet() 当循环中只需要 Map 的主键时,迭代 keySet() 是正确的.但是,当需要主键和取值时,迭代 entrySet() ...
- powerdesigner数据库设计
(1)创建物理数据模型 打开PowerDesigner,然后点击File-->New Model然后选择如下图所示的物理数据模型(物理数据模型的名字自己起,然后选择自己所使用的数据库即可) ( ...
- Linux 内核层和 用户层 配置 GPIO 引脚
Linux BSP 开发的基础就是和GPIO打交道, 下面总结下这几天对某家开发板的GPIO控制的知识. 公司的开发板用的是 DTB 模式 ,首先,进入 dts,dtsi文件查看关于GPIO 的模块 ...
- 330-基于FMC接口的Kintex-7 XC7K325T PCIeX8 3U PXIe接口卡 光纤PCIe卡
一.板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit D ...
- python内存分析
安装 首先安装memory_profiler和psutil pip install memory_profiler pip install psutil 在需要分析的函数前面添加装饰器@profile ...