code: def multiply(x1, x2, output_shape=None, name=None):
    
    if not isinstance(x2, Tensor):
      return ScalarMultiplyOperation(x1, x2).outputs[0]
    with tf.name_scope(name, default_name="mul"):
      x1, x2 = binary_arguments_to_tensors(x1, x2)
      return einsum(
          [x1, x2],
          output_shape=_infer_binary_broadcast_shape(
              x1.shape, x2.shape, output_shape))
docs: Binary multiplication with broadcasting.
  
    Args:
      x1: a Tensor
      x2: a Tensor
      output_shape: an optional Shape
      name: an optional string
    Returns:
      a Tensor