code: def testDefaultInitializers(self, dtype):
      if "TPU" in self.device_types and dtype == tf.float64:
          self.skipTest("Double precision not supported on TPU.")
  
      conv1 = depthwise_conv.DepthwiseConv2D(
          kernel_shape=16, stride=1, padding="VALID", data_format="NHWC"
      )
  
      out = conv1(tf.random.normal([8, 64, 64, 1], dtype=dtype))
  
      self.assertAllEqual(out.shape, [8, 49, 49, 1])
      self.assertEqual(out.dtype, dtype)
  
      # Note that for unit variance inputs the output is below unit variance
      # because of the use of the truncated normal initalizer
      err = 0.2 if self.primary_device == "TPU" else 0.1
      self.assertNear(out.numpy().std(), 0.87, err=err)
  
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 2 for calling the DepthwiseConvTest obj's underlying member method code with example usage: obj.testDefaultInitializers(dtype) without return types