【问题标题】:how to implement caffe deconvolution padding in tensorflow?如何在tensorflow中实现caffe反卷积填充?
【发布时间】:2019-02-21 15:44:09
【问题描述】:

这一层每边都有 4 个像素的填充,但在 tensorflow 中它只有“SAME”和“VALID”填充模式。如何在 tensorflow 中实现这一层?

layer {
  name: "conv3"
  type: "Deconvolution"
  bottom: "conv26"
  top: "conv3"
  param {
    lr_mult: 0.1
  }
  param {
    lr_mult: 0.1
  }
  convolution_param {
    num_output: 1
    kernel_size: 9
    stride: 3
    pad: 4
    weight_filler {
      type: "gaussian"
      std: 0.001
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}

【问题讨论】:

    标签: tensorflow deep-learning caffe


    【解决方案1】:

    您可以使用tf.pad 进行自定义填充。要使用形状为(batch_size, height, width, channels) 的张量my_tensor 填充每个空间维度两侧的四个零:

    my_padded_tensor = tf.pad(
        tensor=my_tensor,
        paddings=tf.constant([[0, 0,], [4, 4], [4,4], [0,0]], dtype=tf.int32),
        mode='CONSTANT',
        constant_values=0
    )
    

    【讨论】:

    • 我在 tf.nn.conv2d_transpose 之前使用 tf.pad 填充输入,但输出不遵循反卷积公式 output_size = strides * (input_size-1) + kernel_size - 2*padding 例如如果我有 input_size = 6 , strides = 4 , kernel_size = 9 , padding=2 输出应该是 21 但输出是 61。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多