code: def _multiply_no_nan(
      x, y, name=None
  ):  # pylint: disable=unused-argument
      dtype = np.result_type(x, y)
      # TODO(b/146385087): The gradient should be
      # `lambda dz: [multiply_no_nan(dz, y), multiply_no_nan(x, dz)]`.
      return np.where(
          np.equal(y, 0.0), np.zeros((), dtype=dtype), np.multiply(x, y)
      )
  
imports: import collections
  import functools
  import numpy
  import numpy
  from tensorflow_probability.python.internal.backend.numpy import _utils
  from tensorflow_probability.python.internal.backend.numpy.numpy_array import _reverse
  from tensorflow_probability.python.internal.backend.numpy.numpy_array import one_hot
  from tensorflow_probability.python.internal.backend.numpy.ops import _convert_to_tensor
label_desc: Use image node_id 25 for calling a global function with example usage: _multiply_no_nan(x, y, name) and returns: np