Strided 2-D convolution with explicit padding.

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).

  inputs_for_logging = inputs
  if strides > 1:
    inputs = fixed_padding(inputs, kernel_size, data_format)

  outputs = 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(
          distribution="truncated_normal"),
      data_format=data_format)

  resnet_log_helper.log_conv2d(
      input_tensor=inputs_for_logging, output_tensor=outputs, stride=strides,
      filters=filters, initializer=mlperf_log.TRUNCATED_NORMAL, use_bias=False)

  return outputs