code: def testAtrousConvolution3D(self):
      with self._delay_checks() as add_check:
          for padding in ["SAME", "VALID"]:
              for depth, height, width in [[9, 9, 10], [9, 10, 9]]:
                  for kernel_depth, kernel_height, kernel_width in [
                      [3, 3, 3],
                      [3, 2, 2],
                      [2, 1, 3],
                  ]:
                      for dilation_rate in [
                          [1, 1, 1],
                          [3, 3, 3],
                          [3, 2, 3],
                          [3, 1, 2],
                      ]:
                          self._test_atrous_convolution(
                              add_check=add_check,
                              input_shape=[2, depth, height, width, 2],
                              filter_shape=[
                                  kernel_depth,
                                  kernel_height,
                                  kernel_width,
                                  2,
                                  2,
                              ],
                              padding=padding,
                              dilation_rate=dilation_rate,
                          )
  
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 6 for calling the AtrousConvolutionTest obj's underlying member method code with example usage: obj.testAtrousConvolution3D() without return types