计算卷积后尺寸
2017-11-21 09:45
183 查看
这里单独把计算卷积之后的维度的公式拿出来,方便查看
1.卷积后尺寸计算
out_height=(in_height+2pad-filter_height)/strides[1]+1
out_width=(in_width+2pad-filter_width)/strides[2] +1
2.tensorflow中卷积参数same和valid运算之后的维度计算
(1)same
out_height=ceil(float(in_height))/float(strides[1])
out_width=ceil(float(in_width))/float(strides[2])
(2)valid
out_height=ceil(float(in_height-filter_height+1))/float(strides[1])
out_width=ceil(float(in_width-filter_width+1))/float(strides[2])
(3)参数
padding: SAME和VALID两种形式
filter: [5,5,1,32]表示5*5的卷积核,1个channel,32个卷积核。
strides: [1,4,4,1]表示横向和竖向的步长都为4
3.tensorflow里面的tf.pad函数
虽然在卷积过程中有same选项可选,但是tensorflow里面还有一个可以用于填充的函数tf.pad(),具体用法如下:
padings : 是一个张量,代表每一维填充多少行/列
mode : “CONSTANT” ,”REFLECT”,”SYMMETRIC”
“CONSTANT” 填充0, “REFLECT”是映射填充,上下(1维)填充顺序和paddings是相反的,左右(零维)顺序补齐, “SYMMETRIC”是对称填充,上下(1维)填充顺序是和paddings相同的,左右(零维)对称补齐
4.在这里补充一下,关于tensorflow中的max_pool()中的padding的含义,之前一直不能理解,现在理解了
(1)先给出代码
(2)结果
从结果可以看出:
对于padding=’VALID’, 166 = math.floor(l500/3)
对于padding=’SAME’, 167 =math.ceil( 500/3)
1.卷积后尺寸计算
out_height=(in_height+2pad-filter_height)/strides[1]+1
out_width=(in_width+2pad-filter_width)/strides[2] +1
2.tensorflow中卷积参数same和valid运算之后的维度计算
(1)same
out_height=ceil(float(in_height))/float(strides[1])
out_width=ceil(float(in_width))/float(strides[2])
(2)valid
out_height=ceil(float(in_height-filter_height+1))/float(strides[1])
out_width=ceil(float(in_width-filter_width+1))/float(strides[2])
(3)参数
padding: SAME和VALID两种形式
filter: [5,5,1,32]表示5*5的卷积核,1个channel,32个卷积核。
strides: [1,4,4,1]表示横向和竖向的步长都为4
3.tensorflow里面的tf.pad函数
虽然在卷积过程中有same选项可选,但是tensorflow里面还有一个可以用于填充的函数tf.pad(),具体用法如下:
tf.pad(tensor, paddings,mode='CONSTANT',name=None)
padings : 是一个张量,代表每一维填充多少行/列
mode : “CONSTANT” ,”REFLECT”,”SYMMETRIC”
“CONSTANT” 填充0, “REFLECT”是映射填充,上下(1维)填充顺序和paddings是相反的,左右(零维)顺序补齐, “SYMMETRIC”是对称填充,上下(1维)填充顺序是和paddings相同的,左右(零维)对称补齐
4.在这里补充一下,关于tensorflow中的max_pool()中的padding的含义,之前一直不能理解,现在理解了
(1)先给出代码
import tensorflow as tf import numpy as np x = tf.placeholder(tf.float32, shape=(1, 500, 500, 3)) #print(type(image)) y1 = tf.nn.max_pool(x, [1, 3, 3, 1], [1, 3, 3, 1], padding = 'VALID') y2 = tf.nn.max_pool(x, [1, 3, 3, 1], [1, 3, 3, 1], padding = 'SAME') with tf.Session() as sess: a = np.full((1, 500, 500, 3), 2) sess.run(tf.global_variables_initializer()) b = sess.run(y1, feed_dict={x: a}) c = sess.run(y2, feed_dict={x: a}) print(b.shape) # Will succeed. print(c.shape) # Will succeed.
(2)结果
(1, 166, 166, 3) #valid (1, 167, 167, 3) #same
从结果可以看出:
对于padding=’VALID’, 166 = math.floor(l500/3)
对于padding=’SAME’, 167 =math.ceil( 500/3)
相关文章推荐
- 在 Caffe 中如何计算卷积后的尺寸
- 卷积尺寸计算
- tensorflow中的逆卷积操作 输出向量的尺寸计算
- FF与IE下javascript计算屏幕尺寸(转)
- 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
- 计算盒子模型的尺寸、display属性、块级和内联元素、浮动、overfloat
- FF与IE下javascript计算屏幕尺寸
- 卷积网络层计算
- 通过代码创建label 计算最佳尺寸 让其自适应文本高度或宽度
- 全连接与卷积计算的关系(全连接到全卷积)
- Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
- 计算控件尺寸
- (原)使用intel的ipp库计算卷积及相关
- c++重写卷积网络的前向计算过程,完美复现theano的测试结果
- 图像卷积回顾与计算优化(待续)
- [转]Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
- Android的DPI、密度、物理尺寸的计算
- Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
- 卷积神经网络经过卷积层后图像尺寸
- Android---android计算 pad或手机的像素,密度,屏幕尺寸