mindspore.mint.float_power

mindspore.mint.float_power(input, exponent)[source]

Computes input to the power of exponent element-wise in double precision, and always returns a mindspore.float64 tensor.

\[out_{i} = input_{i} ^ {exponent_{i}}\]

Warning

This is an experimental API that is subject to change or deletion.

Note

Unlike ops.pow, this function always uses double precision for calculations, while the precision of ops.pow depends on type promotion. Currently, this function does not support complex number calculations. Since float64 calculations are significantly slower on ascend devices compared to other data types, it is strongly recommended to use this function only in scenarios where double precision is required and performance is not a priority. Otherwise, using ops.pow is a better choice.

Parameters
  • input (Union[Tensor, Number]) – The first input is a tensor or a number.

  • exponent (Union[Tensor, Number]) – The second input, if the first input is Tensor, the second input can be Number or Tensor. Otherwise, it must be a Tensor.

Returns

Tensor, the shape is the same as the one after broadcasting, the return value type is mindspore.float64.

Raises
  • TypeError – If neither input nor exponent is a Tensor.

  • TypeError – If the data type of input or exponent is neither a tensor nor a number, or it contains complex numbers.

  • ValueError – If input and exponent have different shapes and cannot be broadcasted to each other.

Supported Platforms:

Ascend

Examples

>>> from mindspore import Tensor, mint
>>> input = Tensor([1, 2, 3])
>>> mint.float_power(input, 2)
Tensor(shape=[3], dtype=Float64, value= [ 1.00000000e+00,  4.00000000e+00,  9.00000000e+00])
>>>
>>> exp = Tensor([2, -3, -4])
>>> mint.float_power(input, exp)
Tensor(shape=[3], dtype=Float64, value= [ 1.00000000e+00,  1.25000000e-01,  1.23456790e-02])