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

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

前置:

  • 影响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
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特征图大小计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值