首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TensorFlow计算均方误差

用TensorFlow计算均方误差
EN

Stack Overflow用户
提问于 2021-12-09 20:49:27
回答 1查看 615关注 0票数 1

我试图弄清楚均方误差(MSE)是如何由tensorflow计算的,并且是在错误上阅读的。

首先,味精被定义为(参见错误):

假设我有一个输出,并创建真值和预测值。

代码语言:javascript
复制
import numpy as np
import random

y_true = np.random.randint(0, 10, size=(2, 1))
print(y_true,"\n")
y_pred = np.random.randint(0,5,size=(2, 1))
print(y_pred)

[[7]
 [5]]

[[2]
 [2]]

但是,当我调用tf.keras.losses.mean_squared_error(y_true, y_pred)时,我希望看到的是[(7-2)^2 + (5-2)^2]/2 = 17返回array([25, 9])。为什么tensorflow不计算平均值?

然后,增加列数。

代码语言:javascript
复制
y_true = np.random.randint(0, 10, size=(2, 3))
print(y_true,"\n")
y_pred = np.random.randint(0,5,size=(2, 3))
print(y_pred)

[[2 6 0]
 [3 3 4]] 

[[4 2 4]
 [3 4 2]]

tensorflow返回的答案是array([12, 1])。我无法理解这些值是如何计算的。我所期待的是[(2-4)^2+ (6-2)^2+(0-4)^2]/2 + [(3-3)^2 + (3-4)^2+ (4-2)^2]/2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-09 20:53:50

第二个值计算为

代码语言:javascript
复制
a = np.array([2,6,0])
b = np.array([4,2,4])
((b - a)**2).mean()

[(2-4)^2+ (6-2)^2+(0-4)^2]/3

根据他们的文档,这相当于np.mean(np.square(y_true - y_pred), axis=-1)

因此,它是按行计算mse的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70296539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档