@tf_export('math.reduce_sum', 'reduce_sum', v1=[])
@dispatch.add_dispatch_support
def reduce_sum(input_tensor, axis=None, keepdims=False, name=None):
    'Computes the sum of elements across dimensions of a tensor.\n\n  Reduces `input_tensor` along the dimensions given in `axis`.\n  Unless `keepdims` is true, the rank of the tensor is reduced by 1 for each\n  entry in `axis`. If `keepdims` is true, the reduced dimensions\n  are retained with length 1.\n\n  If `axis` is None, all dimensions are reduced, and a\n  tensor with a single element is returned.\n\n  For example:\n\n  ```python\n  x = tf.constant([[1, 1, 1], [1, 1, 1]])\n  tf.reduce_sum(x)  # 6\n  tf.reduce_sum(x, 0)  # [2, 2, 2]\n  tf.reduce_sum(x, 1)  # [3, 3]\n  tf.reduce_sum(x, 1, keepdims=True)  # [[3], [3]]\n  tf.reduce_sum(x, [0, 1])  # 6\n  ```\n\n  Args:\n    input_tensor: The tensor to reduce. Should have numeric type.\n    axis: The dimensions to reduce. If `None` (the default), reduces all\n      dimensions. Must be in the range `[-rank(input_tensor),\n      rank(input_tensor))`.\n    keepdims: If true, retains reduced dimensions with length 1.\n    name: A name for the operation (optional).\n\n  Returns:\n    The reduced tensor, of the same dtype as the input_tensor.\n\n  @compatibility(numpy)\n  Equivalent to np.sum apart the fact that numpy upcast uint8 and int32 to\n  int64 while tensorflow returns the same dtype as the input.\n  @end_compatibility\n  '
    keepdims = (False if (keepdims is None) else keepdims)
    return _may_reduce_to_scalar(keepdims, axis, gen_math_ops._sum(input_tensor, _ReductionDims(input_tensor, axis), keepdims, name=name))
Computes the sum of elements across dimensions of a tensor.

Reduces `input_tensor` along the dimensions given in `axis`.
Unless `keepdims` is true, the rank of the tensor is reduced by 1 for each
entry in `axis`. If `keepdims` is true, the reduced dimensions
are retained with length 1.

If `axis` is None, all dimensions are reduced, and a
tensor with a single element is returned.

For example:

```python
x = tf.constant([[1, 1, 1], [1, 1, 1]])
tf.reduce_sum(x)  # 6
tf.reduce_sum(x, 0)  # [2, 2, 2]
tf.reduce_sum(x, 1)  # [3, 3]
tf.reduce_sum(x, 1, keepdims=True)  # [[3], [3]]
tf.reduce_sum(x, [0, 1])  # 6
```

Args:
  input_tensor: The tensor to reduce. Should have numeric type.
  axis: The dimensions to reduce. If `None` (the default), reduces all
    dimensions. Must be in the range `[-rank(input_tensor),
    rank(input_tensor))`.
  keepdims: If true, retains reduced dimensions with length 1.
  name: A name for the operation (optional).

Returns:
  The reduced tensor, of the same dtype as the input_tensor.

@compatibility(numpy)
Equivalent to np.sum apart the fact that numpy upcast uint8 and int32 to
int64 while tensorflow returns the same dtype as the input.
@end_compatibility
@tf_export('math.reduce_sum', 'reduce_sum', v1=[])
@dispatch.add_dispatch_support
def reduce_sum(input_tensor, axis=None, keepdims=False, name=None):
    'Computes the sum of elements across dimensions of a tensor.\n\n  Reduces `input_tensor` along the dimensions given in `axis`.\n  Unless `keepdims` is true, the rank of the tensor is reduced by 1 for each\n  entry in `axis`. If `keepdims` is true, the reduced dimensions\n  are retained with length 1.\n\n  If `axis` is None, all dimensions are reduced, and a\n  tensor with a single element is returned.\n\n  For example:\n\n  ```python\n  x = tf.constant([[1, 1, 1], [1, 1, 1]])\n  tf.reduce_sum(x)  # 6\n  tf.reduce_sum(x, 0)  # [2, 2, 2]\n  tf.reduce_sum(x, 1)  # [3, 3]\n  tf.reduce_sum(x, 1, keepdims=True)  # [[3], [3]]\n  tf.reduce_sum(x, [0, 1])  # 6\n  ```\n\n  Args:\n    input_tensor: The tensor to reduce. Should have numeric type.\n    axis: The dimensions to reduce. If `None` (the default), reduces all\n      dimensions. Must be in the range `[-rank(input_tensor),\n      rank(input_tensor))`.\n    keepdims: If true, retains reduced dimensions with length 1.\n    name: A name for the operation (optional).\n\n  Returns:\n    The reduced tensor, of the same dtype as the input_tensor.\n\n  @compatibility(numpy)\n  Equivalent to np.sum apart the fact that numpy upcast uint8 and int32 to\n  int64 while tensorflow returns the same dtype as the input.\n  @end_compatibility\n  '
    keepdims = (False if (keepdims is None) else keepdims)
    return _may_reduce_to_scalar(keepdims, axis, gen_math_ops._sum(input_tensor, _ReductionDims(input_tensor, axis), keepdims, name=name))