小编Kes*_*ieh的帖子

在Tensorflow中构建Resnet模型时,为什么要使用固定填充

Tensorflow在github中具有resnet的正式实现。并且它使用固定填充而不是普通的tf.layers.conv2d。

像这样:

def conv2d_fixed_padding(inputs, filters, kernel_size, strides, data_format):
  """Strided 2-D convolution with explicit padding."""
  # The padding is consistent and is based only on `kernel_size`, not on the
  # dimensions of `inputs` (as opposed to using `tf.layers.conv2d` alone).
  if strides > 1:
    inputs = fixed_padding(inputs, kernel_size, data_format)

  return tf.layers.conv2d(
      inputs=inputs, filters=filters, kernel_size=kernel_size, strides=strides,
      padding=('SAME' if strides == 1 else 'VALID'), use_bias=False,
      kernel_initializer=tf.variance_scaling_initializer(),
      data_format=data_format)
Run Code Online (Sandbox Code Playgroud)

这样做的目的是什么?如果输入大小为32x32的图像并使用tf.layer.conv2d将填充方法设置为SAME,则跨度为2,则可以得到16x16的特征图。但是在上面的代码中,它将在图像的两边填充零,然后使用填充方法有效。

python tensorflow resnet

7
推荐指数
2
解决办法
1441
查看次数

标签 统计

python ×1

resnet ×1

tensorflow ×1