深度学习-卷积理解
2017-12-06 19:58
281 查看
一.深度卷积神经网络学习笔记(一):
1.这篇文章以贾清扬的ppt说明了卷积的实质,更说明了卷积输出图像大小应该为:
假设输入图像尺寸为W,卷积核尺寸为F,步幅(stride)为S(卷积核移动的步幅),Padding使用P(用于填充输入图像的边界,一般填充0),那么经过该卷积层后输出的图像尺寸为(W-F+2P)/S+1。
2.它写出为什么会用padding?卷积核大小该如何确定?stride该如何确定?
二. Caffe的卷积原理:
1.这篇文章把卷积的过程写得非常形象化,用简单的例子讲明白了卷积过程在caffe写代码的时候是怎么实现的。
2.它还写了卷积后输出图像大小N为:
N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w) + 1] (结果向上取整)
上面是一般情况下的计算,在tensorflow中根据padding时参数选择不同,卷积输出图像的计算方式也可能不同,见:Tensorflow中卷积的padding操作
3.池化大小的计算与卷积类似:
N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w )+ 1] (结果向上取整)
附tensorflow卷积计算:
先定义几个参数
输入图片大小 W×W
Filter大小 F×F
步长 S
padding的像素数 P
于是我们可以得出:N = (W − F + 2P )/S+1
输出图片大小为 N×N
参考http://blog.csdn.net/fireflychh/article/details/73743643
三.卷积时参数的理解
卷积运算时总是有一个参数需要选择,matlab中是shape,python中是border_mode
关于shape选项的说明;
当shape=full时,返回全部二维卷积结果,即返回c的大小为(ma+mb-1)x(na+nb-1)
shape=same时,返回与a同样大小的卷积中心部分
shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回c的大小为(ma-mb+1)x(na-nb+1)
原文链接:https://www.cnblogs.com/dmzhuo/p/6151434.html
1.这篇文章以贾清扬的ppt说明了卷积的实质,更说明了卷积输出图像大小应该为:
假设输入图像尺寸为W,卷积核尺寸为F,步幅(stride)为S(卷积核移动的步幅),Padding使用P(用于填充输入图像的边界,一般填充0),那么经过该卷积层后输出的图像尺寸为(W-F+2P)/S+1。
2.它写出为什么会用padding?卷积核大小该如何确定?stride该如何确定?
二. Caffe的卷积原理:
1.这篇文章把卷积的过程写得非常形象化,用简单的例子讲明白了卷积过程在caffe写代码的时候是怎么实现的。
2.它还写了卷积后输出图像大小N为:
N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w) + 1] (结果向上取整)
image_h:输入图像的高度 image_w:输入图像的宽度 pad_h:在输入图像的高度方向两边各增加pad_h个单位长度(因为有两边,所以乘以2) pad_w:在输入图像的宽度方向两边各增加pad_w个单位长度(因为有两边,所以乘以2) kernel_h:卷积核的高度 kernel_w:卷积核的宽度 stride_h:高度方向的滑动步长; stride_w:宽度方向的滑动步长。 因此,N为输出图像大小的长宽乘积,也是卷积核在输入图像上滑动可截取的最大特征数。 K=k*k,表示利用卷积核大小的框在输入图像上滑动所截取的数据大小,与卷积核大小一样大。
上面是一般情况下的计算,在tensorflow中根据padding时参数选择不同,卷积输出图像的计算方式也可能不同,见:Tensorflow中卷积的padding操作
3.池化大小的计算与卷积类似:
N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w )+ 1] (结果向上取整)
image_h:输入图像的高度 image_w:输入图像的宽度 pad_h:在输入图像的高度方向两边各增加pad_h个单位长度(因为有两边,所以乘以2) pad_w:在输入图像的宽度方向两边各增加pad_w个单位长度(因为有两边,所以乘以2) kernel_h:池化区域的高度 kernel_w:区域的宽度 stride_h:高度方向的滑动步长; stride_w:宽度方向的滑动步长。 因此,N为输出图像大小的长宽乘积,也是卷积核在输入图像上滑动可截取的最大特征数。
附tensorflow卷积计算:
先定义几个参数
输入图片大小 W×W
Filter大小 F×F
步长 S
padding的像素数 P
于是我们可以得出:N = (W − F + 2P )/S+1
输出图片大小为 N×N
参考http://blog.csdn.net/fireflychh/article/details/73743643
三.卷积时参数的理解
卷积运算时总是有一个参数需要选择,matlab中是shape,python中是border_mode
关于shape选项的说明;
当shape=full时,返回全部二维卷积结果,即返回c的大小为(ma+mb-1)x(na+nb-1)
shape=same时,返回与a同样大小的卷积中心部分
shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回c的大小为(ma-mb+1)x(na-nb+1)
原文链接:https://www.cnblogs.com/dmzhuo/p/6151434.html
相关文章推荐
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- 深度学习FPGA实现基础知识14(如何理解“卷积”运算)
- 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
- 理解深度学习中的卷积
- 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- 如何理解深度学习中的卷积?
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- 深入理解深度学习中的【卷积】和 feature map
- 理解深度学习中的卷积
- 理解深度学习中的卷积
- 深度 | 理解深度学习中的卷积
- 运用深度学习教机器人理解自然语言
- [深度学习]理解RNN, GRU, LSTM 网络
- 深度学习之CNN一 卷积与池化
- 深度学习(三十七)优化求解系列之(1)简单理解梯度下降
- 深度学习笔记7 Working with Large Images 卷积特征提取
- 文章解析整理:《从全卷积网络到大型卷积核:深度学习的语义分割全指南》未完