mindspore.Tensor.mean

Tensor.mean(dim=None, keepdim=False, *, dtype=None) Tensor

Reduces all dimension of a tensor by averaging all elements in the dimension, by default. And reduce a dimension of self along the specified dim. keepdim determines whether the dimensions of the output and self are the same.

Note

The dim with tensor type is only used for compatibility with older versions and is not recommended.

Parameters
  • dim (Union[int, tuple(int), list(int), Tensor], optional) – The dimensions to reduce. Default: None , reduce all dimensions. Only constant value is allowed. Assume the rank of self is r, and the value range is [-r,r).

  • keepdim (bool, optional) – If True , keep these reduced dimensions and the length is 1. If False , don't keep these dimensions. Default: False .

Keyword Arguments

dtype (mindspore.dtype, optional) – The desired data type of returned Tensor. Default: None .

Returns

Tensor, has the same data type as self tensor.

  • If dim is None , and keepdim is False , the output is a 0-D tensor representing the product of all elements in the self tensor.

  • If dim is int, set as 1, and keepdim is False , the shape of output is \((x_0, x_2, ..., x_R)\).

  • If dim is tuple(int), set as (1, 2), and keepdim is False , the shape of output is \((x_0, x_3, ..., x_R)\).

  • If dim is 1-D Tensor, set as [1, 2], and keepdim is False , the shape of output is \((x_0, x_3, ..., x_R)\).

Raises
  • TypeError – If dim is not one of the following: int, tuple, list or Tensor.

  • TypeError – If keepdim is not a bool.

  • ValueError – If dim is out of range.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> x = Tensor(np.random.randn(3, 4, 5, 6).astype(np.float32))
>>> output = Tensor.mean(x, 1, keepdim=True)
>>> result = output.shape
>>> print(result)
(3, 1, 5, 6)
>>> # case 1: Reduces a dimension by averaging all elements in the dimension.
>>> x = Tensor(np.array([[[2, 2, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2]],
... [[4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6, 6]],
... [[6, 6, 6, 6, 6, 6], [8, 8, 8, 8, 8, 8], [10, 10, 10, 10, 10, 10]]]),
... mindspore.float32)
>>> output = Tensor.mean(x)
>>> print(output)
5.0
>>> print(output.shape)
()
>>> # case 2: Reduces a dimension along the dim 0
>>> output = Tensor.mean(x, 0, True)
>>> print(output)
[[[4. 4. 4. 4. 4. 4.]
  [5. 5. 5. 5. 5. 5.]
  [6. 6. 6. 6. 6. 6.]]]
>>> # case 3: Reduces a dimension along the dim 1
>>> output = Tensor.mean(x, 1, True)
>>> print(output)
[[[2. 2. 2. 2. 2. 2.]]
 [[5. 5. 5. 5. 5. 5.]]
 [[8. 8. 8. 8. 8. 8.]]]
>>> # case 4: Reduces a dimension along the dim 2
>>> output = Tensor.mean(x, 2, True)
>>> print(output)
[[[ 2.]
  [ 2.]
  [ 2.]]
 [[ 4.]
  [ 5.]
  [ 6.]]
 [[ 6.]
  [ 8.]
  [10.]]]
Tensor.mean(axis=None, keep_dims=False) Tensor

For details, please refer to mindspore.ops.mean() .