zoukankan      html  css  js  c++  java
  • tensorflow中padding规则

    在tf.nn.conv2d函数中,padding可以选择VALID和SAME两种模式,两种模式得到的卷积输出尺寸计算方式不同。

    • 输入尺寸高和宽:in_height、in_width
    • 卷积核的高和宽:filter_height、filter_width
    • 输出尺寸高和宽:output_height、output_width
    • 步长移动高和宽:strides_height、strides_width

    1、当padding=VALID

    输出宽和高计算公式为:

    output_height=(in_height-filter_height+1)/strides_height(结果向上取整)

    output_width=(in_width-filter_width+1)/strides_width(结果向上取整)

    2、当padding=SAME

    此时需要进行补零

    output_height=in_height/strides_height(结果向上取整)

    output_width=in_width/strides_width(结果向上取整)

    补零的参数

    pad_height = max((out_height - 1) x strides_height + filter_height - in_height, 0)(高度方向填充0的行数)

    pad_width = max((out_width - 1) x strides_width + filter_width - in_width, 0)(宽度方向填充0的列数)

    pad_top = pad_height / 2(上方向填充0的行数,向下取整)

    pad_bottom = pad_height - pad_top(下方向填充0的行数)

    pad_left = pad_width / 2(左方向填充0的列数,向下取整)

    pad_right = pad_width - pad_left(右方向填充0的列数)

    3、举例

    输入为13x1的一维矩阵,filter为6x1,步长为5

    当padding=VALID

    output_width=(13-6+1)/5=2(向上取整)

    所以计算时舍弃了最后两个值

    当padding=SAME

    output_width=13/5=3(向上取整)

     pad_width = max((3 - 1) x 5 + 6 - 13, 1) = 3

    pad_left = pad_width / 2 = 3 / 2 = 1 (向下取整)

    pad_right = pad_width - pad_left = 2

    所以左边补一个0,右边补两个0

  • 相关阅读:
    盒子!盒子!盒子!
    常用图片加链接文字加链接代码
    滚动跑马灯标记marquee实用代码
    版权所有LIKEWING_柳我借地存个图学习一下
    一个用CSS制作的表单样式
    一段代码学会CSS交集选择器和并集选择器
    菜鸟关于CSS的一点思考
    后代选择器的范例
    利用JavaScript脚本改中的颜色
    JavaScript:在线五子棋盘
  • 原文地址:https://www.cnblogs.com/xbyfight/p/11139178.html
Copyright © 2011-2022 走看看