首页 Paddle框架 帖子详情
paddle 与numpy 计算结果 不一致
收藏
快速回复
Paddle框架 其他模型训练 435 7
paddle 与numpy 计算结果 不一致
收藏
快速回复
Paddle框架 其他模型训练 435 7

代码如下所示:

在`paddle`和`numpy` 中计算的结果不一致

import paddle
import numpy as np

a=[[1,2,3],[4,5,6]]

p_a = paddle.to_tensor(a,dtype = "float32")
n_a = np.array(a,dtype = "float32")

p_var = paddle.var(p_a)
p_std = paddle.std(p_a)

n_var = np.var(n_a)
n_std = np.std(n_a)

print(p_var.numpy())
print(n_var)
print(p_std.numpy())
print(n_std)

"""
[3.5]
2.9166667
[1.8708287]
1.7078252
"""
0
收藏
回复
全部评论(7)
时间顺序
DeepGeGe
#2 回复于2021-12

不存在的:

import paddle
import numpy as np

a = [[1, 2, 3], [4, 5, 6]]

p_a = paddle.to_tensor(a, dtype="float32")
n_a = np.array(a, dtype="float32")

p_var = paddle.var(p_a)
p_std = paddle.std(p_a)
p_var_unbiased = paddle.var(p_a, unbiased=False)
p_std_unbiased = paddle.std(p_a, unbiased=False)

n_var = np.var(n_a)
n_std = np.std(n_a)

print(p_var.numpy())
print(p_var_unbiased.numpy())
print(n_var)
print('-------------------------')
print(p_std.numpy())
print(p_std_unbiased.numpy())
print(n_std)


[3.5]
[2.9166667]
2.9166667
-------------------------
[1.8708287]
[1.7078252]
1.7078252

PaddlePaddle中默认使用无偏估计来计算方差和标准差,即在计算中使用N−1作为除数,而numpy中默认使用N-1作为除数。

抬走,下一位。

1
回复
DeepGeGe
#3 回复于2021-12

论坛又出问题了,回复会提示回复异常,回复数也不会显示在主页。。。

0
回复
DeepGeGe
#4 回复于2021-12

不知道你看不看的到回复。。。

0
回复
DeepGeGe
#5 回复于2021-12
不存在的: [代码] PaddlePaddle中默认使用无偏估计来计算方差和标准差,即在计算中使用N−1作为除数,而numpy中默认使用N-1作为除数。 抬走,下一位。

numpy中默认使用N作为除数,不是求的无偏估计。这里打错了。

0
回复
ChaoII
#6 回复于2021-12
不存在的: [代码] PaddlePaddle中默认使用无偏估计来计算方差和标准差,即在计算中使用N−1作为除数,而numpy中默认使用N-1作为除数。 抬走,下一位。

厉害了,老哥。。。。。。居然问不住大佬

0
回复
DeepGeGe
#7 回复于2021-12
ChaoII #6
厉害了,老哥。。。。。。居然问不住大佬

遇到情况就去查文档。这个方法大约可以解决80%的问题。<_<

0
回复
ChaoII
#8 回复于2021-12
遇到情况就去查文档。这个方法大约可以解决80%的问题。<_<

是滴是滴,ddof默认值不一样

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户