code: def _make_input_and_kernel(
      make_input,
      input_batch_shape,
      input_shape,
      kernel_batch_shape,
      filter_shape,
      channels_out,
      dtype,
  ):
      total_input_shape = ps.concat(
          [input_batch_shape, input_shape], axis=0
      )
      total_kernel_shape = ps.concat(
          [
              kernel_batch_shape,
              [
                  filter_shape[0] * filter_shape[1] * input_shape[-1],
                  channels_out,
              ],
          ],
          axis=0,
      )
      # Use integers for numerical stability.
      sample_fn = lambda s: make_input(
          tf.cast(  # pylint: disable=g-long-lambda
              tf.random.uniform(
                  ps.cast(s, tf.int32),
                  minval=-10,
                  maxval=10,
                  dtype=tf.int32,
              ),
              dtype=dtype,
          )
      )
      return sample_fn(total_input_shape), sample_fn(total_kernel_shape)
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.nn.util import convolution_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.internal import tf_keras
label_desc: Use image node_id 1 for calling a global function with example usage: _make_input_and_kernel(make_input, input_batch_shape, input_shape, kernel_batch_shape, filter_shape, channels_out, dtype) and returns: sample_fn,  sample_fn