code: def sub(x1, x2, output_shape=None, name=None):
    
    output_shape = convert_to_shape(output_shape)
    if not isinstance(x2, Tensor):
      return ScalarAddOperation(x1, -x2).outputs[0]
    with tf.name_scope(name, default_name="sub"):
      x1, x2 = binary_arguments_to_tensors(x1, x2)
      return add(x1, negative(x2), output_shape=output_shape)
docs: Binary subtraction with broadcsting.
  
    Args:
      x1: a Tensor
      x2: a Tensor
      output_shape: an optional Shape
      name: an optional string
    Returns:
      a Tensor