maxframe.tensor.float_power#

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

第一个张量的元素逐元素地提升为第二个数组中对应的幂。

x1 中的每个底数提升为 x2 中位置对应的幂。x1x2 必须可以广播到相同的形状。这与幂函数不同的是,整数、float16 和 float32 会被提升为至少 float64 精度的浮点数,因此结果总是不精确的。此函数的目的是对负幂返回可用的结果,并且很少在正幂时发生溢出。

参数:
  • 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

参见

power

保留类型的幂函数

示例

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

>>> import maxframe.tensor as mt
>>> x1 = range(6)
>>> x1
[0, 1, 2, 3, 4, 5]
>>> mt.float_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.float_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.float_power(x1, x2).execute()
array([[  0.,   1.,   8.,  27.,  16.,   5.],
       [  0.,   1.,   8.,  27.,  16.,   5.]])