code: def testUnknownSpatialDims(self):
      x = tf.TensorSpec([3, None, None, 3], dtype=tf.float32)
  
      c = depthwise_conv.DepthwiseConv2D(
          channel_multiplier=1, kernel_shape=3, data_format="NHWC"
      )
      defun_conv = tf.function(c).get_concrete_function(x)
  
      out = defun_conv(tf.ones([3, 5, 5, 3]))
      expected_out = c(tf.ones([3, 5, 5, 3]))
      self.assertEqual(out.shape, [3, 5, 5, 3])
      self.assertAllEqual(
          self.evaluate(out), self.evaluate(expected_out)
      )
  
      out = defun_conv(tf.ones([3, 4, 4, 3]))
      expected_out = c(tf.ones([3, 4, 4, 3]))
      self.assertEqual(out.shape, [3, 4, 4, 3])
      self.assertAllEqual(
          self.evaluate(out), self.evaluate(expected_out)
      )
  
imports: from absl.testing import parameterized
  import numpy
  from sonnet.src import depthwise_conv
  from sonnet.src import initializers
  from sonnet.src import test_utils
  import tensorflow
label_desc: Use image node_id 6 for calling the DepthwiseConvTest obj's underlying member method code with example usage: obj.testUnknownSpatialDims() without return types