Paddle pow计算问题

nwwlzxa7  于 2021-12-07  发布在  Java
关注(0)|答案(7)|浏览(350)

官方文档中写:
pow
paddle.pow(x, y, name=None)[源代码]
该OP是指数算子,逐元素计算 x 的 y 次幂。
out=x^y
参数
x (Tensor)- 多维 Tensor,数据类型为 float32 、 float64 、 int32 或 int64 。
y (float|int|Tensor)- 如果类型是多维 Tensor,其数据类型应该和 x 相同。
name (str, 可选)- 操作的名称(可选,默认值为None)。更多信息请参见 Name。
返回
Tensor, 维度和数据类型都和 x 相同。

但当输入为多维tensor时,交换x,y的位置计算结果是相同的,并不是element-wise的out=x^y。示例代码如下:
import paddle

x = paddle.to_tensor([[1, 2, 3], [1, 2, 3]], dtype='float32')
y = paddle.to_tensor(2, dtype='float32')
res = paddle.pow(x, y)
print(res)
res = paddle.pow(y, x)
print(res)

输出:
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[1., 4., 9.],
[1., 4., 9.]])
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[1., 4., 9.],
[1., 4., 9.]])
如文档所述,我期待的结果应该是:
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[1., 4., 9.],
[1., 4., 9.]])
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[2., 4., 8.],
[2., 4., 8.]])

4szc88ey

4szc88ey1#

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

sz81bmfz

sz81bmfz2#

预期应该是 ?

我目前在用的开发版已经修复了这个问题。你目前使用的版本是?

b4wnujal

b4wnujal3#

我用的最新稳定版2.1.1是有问题的,输出
W0629 17:33:13.157128 58136 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 11.3, Runtime API Version: 11.2
W0629 17:33:13.163112 58136 device_context.cc:422] device: 0, cuDNN Version: 8.1.
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[1., 4., 9.],
[1., 4., 9.]])
Tensor(shape=[2, 3], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
[[1., 4., 9.],
[1., 4., 9.]])
等下我试下nightly

eqqqjvef

eqqqjvef4#

我查找一下最近的 PR

nnvyjq4y

nnvyjq4y5#

试了下nightly是没问题的

myss37ts

myss37ts6#

okay, 那么请先用 nightly 或者自编译。等下一个正式版 2.1.2 出来就好了。

ogq8wdun

ogq8wdun7#

这个问题跟broadcast机制有关,在nightly中已修复,由于影响面太大,计划在2.2版本中发布,着急的话请先用nightly

相关问题