maxframe.tensor.power#

maxframe.tensor.power(x1, x2, out=None, where=None, **kwargs)[源代码]#

第一个张量的元素按元素方式提升到第二个张量的幂次。

x1 中的每个底数提升到 x2 中对应位置的幂次。x1x2 必须可以广播为相同形状。注意,整数类型提升到负整数幂次将会引发 ValueError。

参数:
  • x1 (array_like) -- 底数。

  • x2 (array_like) -- 指数。

  • out (Tensor, None, or tuple of Tensor and None, optional) -- 用于存储结果的位置。如果提供了该参数,其形状必须与输入可广播一致。如果未提供或为 None,则返回一个新分配的张量。元组(只能作为关键字参数)的长度必须等于输出数量。

  • where (array_like, optional) -- 值为 True 表示在该位置计算 ufunc,值为 False 表示保留输出中的值不变。

  • **kwargs

返回:

y -- x1 中的底数提升到 x2 中的指数。

返回类型:

Tensor

参见

float_power

将整数提升为浮点数的幂函数

示例

对列表中的每个元素求立方。

>>> import maxframe.tensor as mt
>>> x1 = range(6)
>>> x1
[0, 1, 2, 3, 4, 5]
>>> mt.power(x1, 3).execute()
array([  0,   1,   8,  27,  64, 125])

将底数提升到不同的指数。

>>> x2 = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]
>>> mt.power(x1, x2).execute()
array([  0.,   1.,   8.,  27.,  16.,   5.])

广播的效果。

>>> x2 = mt.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]])
>>> x2.execute()
array([[1, 2, 3, 3, 2, 1],
       [1, 2, 3, 3, 2, 1]])
>>> mt.power(x1, x2).execute()
array([[ 0,  1,  8, 27, 16,  5],
       [ 0,  1,  8, 27, 16,  5]])