code: def testAtrousConvolutionNC(self):
      if test.is_gpu_available(cuda_only=True):
          # "NCW" and "NCHW" formats are currently supported only on CUDA.
          with test_util.device(use_gpu=True):
              with self._delay_checks() as add_check:
                  for padding in ["SAME", "VALID"]:
                      self._test_atrous_convolution(
                          add_check=add_check,
                          input_shape=[2, 2, 9],
                          padding=padding,
                          filter_shape=[3, 2, 2],
                          dilation_rate=[2],
                          data_format="NCW",
                      )
                      self._test_atrous_convolution(
                          add_check=add_check,
                          input_shape=[2, 2, 9, 5],
                          padding=padding,
                          filter_shape=[3, 3, 2, 2],
                          dilation_rate=[2, 1],
                          data_format="NCHW",
                      )
  
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 8 for calling the AtrousConvolutionTest obj's underlying member method code with example usage: obj.testAtrousConvolutionNC() without return types