code: def _broadcast_gradient_args(
      s0, s1, name=None
  ):  # pylint: disable=unused-argument
      bc_shp = onp.array(
          (
              onp.zeros(tuple(s0) + (0,)) + onp.zeros(tuple(s1) + (0,))
          ).shape[:-1],
          dtype=onp.int32,
      )
      pad_s0 = onp.pad(
          s0,
          [[len(bc_shp) - len(s0), 0]],
          mode="constant",
          constant_values=-1,
      )
      pad_s1 = onp.pad(
          s1,
          [[len(bc_shp) - len(s1), 0]],
          mode="constant",
          constant_values=-1,
      )
      return _BroadcastGradientArgs(
          onp.where((bc_shp != pad_s0) | (pad_s0 == 1))[0].astype(
              onp.int32
          ),
          onp.where((bc_shp != pad_s1) | (pad_s1 == 1))[0].astype(
              onp.int32
          ),
      )
  
imports: import collections
  import numpy
  import numpy
  from tensorflow_probability.python.internal.backend.numpy import _utils
label_desc: Use image node_id 1 for calling a global function with example usage: _broadcast_gradient_args(s0, s1, name) and returns: _BroadcastGradientArgs