笔记 - 卷积网络:卷积输出张量shape计算

前置:

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

公式:

在这里插入图片描述
笔记 - 卷积网络:卷积输出张量shape计算_第1张图片

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

笔记 - 卷积网络:卷积输出张量shape计算_第2张图片

运用

笔记 - 卷积网络:卷积输出张量shape计算_第3张图片

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

        公式1
        笔记 - 卷积网络:卷积输出张量shape计算_第4张图片
        公式2
        在这里插入图片描述

        • 注意了这里P可以不是整数哦,比如计算P=1.5的话也是正常的
          如果补充的padding个数为偶数会在两侧补充相同个数个0,如果padding为奇数2n+1,会在左侧补n个0,右侧补n+1个0
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的形状
    笔记 - 卷积网络:卷积输出张量shape计算_第5张图片

参考

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

你可能感兴趣的:(AI,编程,tensorflow,深度学习,模型训练)