code: def testDefaultInitializers(self, dtype):
      if "TPU" in self.device_types and dtype == tf.float64:
          self.skipTest("Double precision not supported on TPU.")
  
      conv1 = conv.ConvND(
          num_spatial_dims=2,
          output_channels=1,
          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 conv
  from sonnet.src import initializers
  from sonnet.src import test_utils
  import tensorflow
label_desc: Use image node_id 5 for calling the ConvTest obj's underlying member method code with example usage: obj.testDefaultInitializers(dtype) without return types