mars.tensor.float_power#
- mars.tensor.float_power(x1, x2, out=None, where=None, **kwargs)[来源]#
第一个张量的元素按逐项方式提升到第二个数组的幂。
将每个基数在 x1 中提升到在 x2 中相应位置的幂。 x1 和 x2 必须能够广播到相同的形状。这与 幂函数不同,整数、float16 和 float32 会提升为 至少精度为 float64 的浮点数,因此结果总是 不精确。其目的是该函数将返回负幂的可用结果,并且对于正幂很少溢出。
- Parameters
x1 (array_like) – 基础。
x2 (array_like) – 指数。
out (Tensor, None, 或 tuple 的 Tensor 和 None, 可选) – 结果存储的位置。如果提供,它必须具有和输入相同的广播形状。如果未提供或None,将返回一个新分配的张量。元组(仅作为关键字参数可能)必须具有与输出数量相等的长度。
where (array_like, 可选) – 值为 True 表示在该位置计算 ufunc,值为 False 表示保持输出中的该值不变。
**kwargs –
- Returns
y – x1中的基数提升到x2中的指数。
- Return type
张量
另请参阅
power保持类型的幂函数
示例
对列表中的每个元素求立方。
>>> import mars.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.]])