maxframe.tensor.float_power#
- maxframe.tensor.float_power(x1, x2, out=None, where=None, **kwargs)[源代码]#
第一个张量的元素逐元素地提升为第二个数组中对应的幂。
将 x1 中的每个底数提升为 x2 中位置对应的幂。x1 和 x2 必须可以广播到相同的形状。这与幂函数不同的是,整数、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.]])