code: def test_unknown_spatial_dims_for_channel_last_format(self):
      x = array_ops.placeholder(dtypes.float32, [1, None, None, 10])
      w = array_ops.zeros([3, 3, 10, 20])
      y = nn_ops.convolution(
          x, w, "VALID", dilation_rate=[2, 2], data_format="NHWC"
      )
      self.assertEqual(y.shape.as_list(), [1, None, None, 20])
  
imports: import contextlib
  import numpy
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradient_checker
  from tensorflow.python.ops import nn_ops
  import tensorflow.python.ops.nn_grad
  from tensorflow.python.platform import test
label_desc: Use image node_id 3 for calling the AtrousConvolutionTest obj's underlying member method code with example usage: obj.test_unknown_spatial_dims_for_channel_last_format() without return types