前置:
- 影响shape形状的因素:
- 1.卷积核大小
- 2.stride步长
- 3.padding模式
公式:


- K – 卷积核数量
- F – 卷积核大小
- S – 步长
- P – 外围填充的层数

运用

- 显然valid模式下,直接卷,不够就丢弃
我推导的valid模式下的计算方式(以 W 举例):
W2 = (W1 - F)/S + 1
- SAME模式
- 如何确定P
- 利用公式1计算出output理论上的形状,再利用公式2反推 P
公式1

公式2

- 注意了这里P可以不是整数哦,比如计算P=1.5的话也是正常的
如果补充的padding个数为偶数会在两侧补充相同个数个0,如果padding为奇数2n+1,会在左侧补n个0,右侧补n+1个0
- 注意了这里P可以不是整数哦,比如计算P=1.5的话也是正常的
- 利用公式1计算出output理论上的形状,再利用公式2反推 P
- 如何确定P
5×5的图像
3×3的卷积核
步长 2
padding SAME
import tensorflow as tf
import numpy as np
pic = tf.constant(value=np.ones((5, 5), dtype=np.float32), shape=(1,5,5,1))
W = tf.constant(value=np.ones((3, 3), dtype=np.float32), shape=(3,3,1,1))
output = tf.nn.conv2d(pic, W, strides=[1, 2, 2, 1], padding='SAME')
with tf.Session() as sess:
print(output.eval().shape)
"""
运行结果:
(1, 3, 3, 1)
"""
总结
- 判断输出张量shape的形状

参考
深度学习基础–卷积计算和池化计算公式
理解CNN卷积层与池化层计算
tensorflow中卷积方式SAME和VALID特征图大小计算

本文介绍了卷积网络中影响输出张量shape的因素,包括卷积核大小、步长和填充模式。重点讲解了在VALID和SAME模式下如何计算输出形状,并给出了计算外围填充层数P的公式。同时,文中提到了当P为非整数时的处理方式以及不同填充模式下的填充策略。
7060

被折叠的 条评论
为什么被折叠?



