mindspore.Tensor.xlogy

Tensor.xlogy(y)[source]

Computes the self tensor multiplied by the logarithm of input tensor element-wise. Returns zero when self tensor is zero. The data type of the self tensor should be number or bool_. To make it clear, the following content will use x to represent the self tensor.

\[out_i = x_{i}\ln{y_{i}}\]

Inputs of x and y comply with the implicit type conversion rules to make the data types consistent. The inputs must be two tensors or one tensor and one scalar. When the inputs are two tensors, dtypes of them cannot be bool at the same time, and the shapes of them could be broadcast. When the inputs are one tensor and one scalar, the scalar could only be a constant.

Warning

  • On Ascend, the data type of x and y must be float16 or float32.

Parameters

y (Union[Tensor, number.Number, bool]) – The y input is a number.Number or a bool or a tensor whose data type is number or bool.

Returns

Tensor, the shape is the same as the one after broadcasting, and the data type is the one with higher precision or higher digits among the two inputs.

Raises
  • TypeError – If y is not a number.Number or a bool or a Tensor.

  • TypeError – If dtype of x and ‘y’ is not in [float16, float32, float64, complex64, complex128] .

  • ValueError – If x could not be broadcast to a tensor with shape of y.

Supported Platforms:

Ascend GPU CPU

Examples

>>> x = Tensor(np.array([-5, 0, 4]), mindspore.float32)
>>> y = Tensor(np.array([2, 2, 2]), mindspore.float32)
>>> print(x.xlogy(y))
[-3.465736   0.        2.7725887]