快速理解卷积神经网络的输入输出尺寸问题

原创 2018年04月15日 21:19:24

一般一个神经网络的一层包括一个卷积和一个池化,这里主要讲述对输入和输出的尺寸的理解:

一、卷积

首先input输入矩阵,weight权值矩阵(滤波器)如下图429是由weight与input对应位置相乘再相加得到。

然后是步长stride和边界padding

像我们在上面看到的一样,过滤器或者说权值矩阵,在整个图像范围内一次移动一个像素。我们可以把它定义成一个超参数,从而来表示我们想让权值矩阵在图像内如何移动。如果权值矩阵一次移动一个像素,我们称其步长为 1。下面我们看一下步长为 2 时的情况:weight从右下角的204跳过113直接移步到109

可以看见当我们增加步长值的时候,图像的规格持续变小。在输入图像四周填充 0 边界可以解决这个问题。我们也可以在高步长值的情况下在图像四周填加不只一层的 0 边界。如下图:weight中心直接放到18然后依次54,51(stride=1时)


不填充0时为valid padding,填充0时为same padding (输入输出图像大小相同)

下面是三维立体卷积:

一幅图像不仅有灰度特征,有时我们也想检测它的彩色特征(RGB),我们假设一幅图像为6*6*3,这里的 3 指的是三个颜色通道,用nc表示。你可以把它想象成三个 6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的 3×3 的过滤器做卷积,而是跟一个三维的过滤器,它的维度是 3×3×3,这样这个过滤器也有三层,对应红绿、蓝三个通道。


注意4*4中第一个数是由27个数字相加得到,二这27 个数字是由weight对应6*6*3中的左上角的3*3*3立方体对应相乘得到。

这里讲一个输出维度计算问题:


二、池化层

有时图像太大,我们需要减少训练参数的数量,它被要求在随后的卷积层之间周期性地引进池化层。池化的唯一目的是减少图像的空间大小。池化在每一个纵深维度上独自完成,因此图像的纵深保持不变。池化层的最常见形式是最大池化(还有均值池化等等)。

如下图:nc两个术语,通道或者深度



计算卷积神经网络的各层输出大小

# coding: utf-8 import os import codecs import numpy as np from sklearn.preprocessing import scale ...
  • qq_27009517
  • qq_27009517
  • 2018-03-04 22:05:43
  • 401

CNN笔记:通俗理解卷积神经网络--理解不同输入通道和卷积核通道关系(红色部分)

1 前言2012年我在北京组织过8期machine learning读书会,那时“机器学习”非常火,很多人都对其抱有巨大的热情。当我2013年再次来到北京时,有一个词似乎比“机器学习”更火,那就是“深...
  • GoodShot
  • GoodShot
  • 2018-04-07 12:31:28
  • 174

卷积神经网络经过卷积层后图像尺寸

设输入图像尺寸为W,卷积核尺寸为F,步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为(W−F+2P)S+1\frac{(W-F+2P)}{S}+1。...
  • y12345678904
  • y12345678904
  • 2017-12-20 18:24:02
  • 992

cuda-convnet 卷积神经网络 一般性结构卷积核个数和输入输出的关系以及输入输出的个数的说明

卷积神经网络 一般性结构卷积核个数和 输入输出的关系以及输入输出的个数的说明: 以cifar-10为例: Initialized data layer 'data', producing3...
  • boon_228
  • boon_228
  • 2016-06-14 14:38:17
  • 1145

caffe卷积输入通道如何到输出通道详解

问题:10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的, 输出的个数依然是 卷积核的个数。 可以查看常用模...
  • DanyHgc
  • DanyHgc
  • 2017-09-01 17:38:13
  • 1077

对卷积神经网络(CNN)的简单理解

之前简单的了解过cnn的简单的网络结构,但是对于其中的一些概念都不是很了解,但是最近学tensorflow看源码的时候真的很吃力,啥都看不懂,所以今天下午把cnn详细的看了一下,虽然最近很忙,还是要整...
  • zjm750617105
  • zjm750617105
  • 2016-05-26 20:43:59
  • 6463

卷积神经网络(CNN)学习笔记2:举例理解

下图是一个经典的CNN结构,称为LeNet-5网络 可以看出,CNN中主要有两种类型的网络层,分别是卷积层和池化(Pooling)/采样层(Subsampling)。卷积层的作用是提取图像的各种特...
  • bingningning
  • bingningning
  • 2016-08-30 21:28:57
  • 2294

卷积神经网络中的部分问题

转载来自:http://blog.csdn.net/maweifei/article/details/52443995 步幅和填充 好了,现在来看一下我们的卷积神经网络。还记得过滤...
  • songyimin1208
  • songyimin1208
  • 2017-04-03 17:30:45
  • 1793

关于CNN(卷积神经网络)最直观的解释

看过许多关于CNN的解释,要么因为涉及公式太多,实在不想被数学公式等高深的理论知识过多的占用理解时间,要么就是跟直接翻译论文上描述,没有那么通俗易懂,我今天看到一个知乎博主写的CNN解释,觉得深入浅出...
  • f12105212
  • f12105212
  • 2017-11-30 11:25:49
  • 424

理解自然语言处理中的卷积神经网络

当我们听到卷积神经网络时,我们通常会想到计算机视觉。卷积神经网络(CNN)在图形分类的进步中起着主要的作用,也是现在大多数计算机视觉系统的核心,它也运用于facebook的自动驾驶汽车上的自动图片标记...
  • class_brick
  • class_brick
  • 2017-12-06 15:06:55
  • 304
收藏助手
不良信息举报
您举报文章:快速理解卷积神经网络的输入输出尺寸问题
举报原因:
原因补充:

(最多只允许输入30个字)