@tf_export(v1=['math.reduce_mean', 'reduce_mean'])
def reduce_mean_v1(input_tensor, axis=None, keepdims=None, name=None, reduction_indices=None, keep_dims=None):
    'Computes the mean 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.], [2., 2.]])\n  tf.reduce_mean(x)  # 1.5\n  tf.reduce_mean(x, 0)  # [1.5, 1.5]\n  tf.reduce_mean(x, 1)  # [1.,  2.]\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),\n      reduces all dimensions. Must be in the range\n      `[-rank(input_tensor), rank(input_tensor))`.\n    keepdims: If true, retains reduced dimensions with length 1.\n    name: A name for the operation (optional).\n    reduction_indices: The old (deprecated) name for axis.\n    keep_dims: Deprecated alias for `keepdims`.\n\n  Returns:\n    The reduced tensor.\n\n  @compatibility(numpy)\n  Equivalent to np.mean\n\n  Please note that `np.mean` has a `dtype` parameter that could be used to\n  specify the output type. By default this is `dtype=float64`. On the other\n  hand, `tf.reduce_mean` has an aggressive type inference from `input_tensor`,\n  for example:\n\n  ```python\n  x = tf.constant([1, 0, 1, 0])\n  tf.reduce_mean(x)  # 0\n  y = tf.constant([1., 0., 1., 0.])\n  tf.reduce_mean(y)  # 0.5\n  ```\n\n  @end_compatibility\n  '
    axis = deprecation.deprecated_argument_lookup('axis', axis, 'reduction_indices', reduction_indices)
    keepdims = deprecation.deprecated_argument_lookup('keepdims', keepdims, 'keep_dims', keep_dims)
    return reduce_mean(input_tensor, axis, keepdims, name)
Computes the mean 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.], [2., 2.]])
tf.reduce_mean(x)  # 1.5
tf.reduce_mean(x, 0)  # [1.5, 1.5]
tf.reduce_mean(x, 1)  # [1.,  2.]
```

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).
  reduction_indices: The old (deprecated) name for axis.
  keep_dims: Deprecated alias for `keepdims`.

Returns:
  The reduced tensor.

@compatibility(numpy)
Equivalent to np.mean

Please note that `np.mean` has a `dtype` parameter that could be used to
specify the output type. By default this is `dtype=float64`. On the other
hand, `tf.reduce_mean` has an aggressive type inference from `input_tensor`,
for example:

```python
x = tf.constant([1, 0, 1, 0])
tf.reduce_mean(x)  # 0
y = tf.constant([1., 0., 1., 0.])
tf.reduce_mean(y)  # 0.5
```

@end_compatibility
@tf_export(v1=['math.reduce_mean', 'reduce_mean'])
def reduce_mean_v1(input_tensor, axis=None, keepdims=None, name=None, reduction_indices=None, keep_dims=None):
    'Computes the mean 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.], [2., 2.]])\n  tf.reduce_mean(x)  # 1.5\n  tf.reduce_mean(x, 0)  # [1.5, 1.5]\n  tf.reduce_mean(x, 1)  # [1.,  2.]\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),\n      reduces all dimensions. Must be in the range\n      `[-rank(input_tensor), rank(input_tensor))`.\n    keepdims: If true, retains reduced dimensions with length 1.\n    name: A name for the operation (optional).\n    reduction_indices: The old (deprecated) name for axis.\n    keep_dims: Deprecated alias for `keepdims`.\n\n  Returns:\n    The reduced tensor.\n\n  @compatibility(numpy)\n  Equivalent to np.mean\n\n  Please note that `np.mean` has a `dtype` parameter that could be used to\n  specify the output type. By default this is `dtype=float64`. On the other\n  hand, `tf.reduce_mean` has an aggressive type inference from `input_tensor`,\n  for example:\n\n  ```python\n  x = tf.constant([1, 0, 1, 0])\n  tf.reduce_mean(x)  # 0\n  y = tf.constant([1., 0., 1., 0.])\n  tf.reduce_mean(y)  # 0.5\n  ```\n\n  @end_compatibility\n  '
    axis = deprecation.deprecated_argument_lookup('axis', axis, 'reduction_indices', reduction_indices)
    keepdims = deprecation.deprecated_argument_lookup('keepdims', keepdims, 'keep_dims', keep_dims)
    return reduce_mean(input_tensor, axis, keepdims, name)