我试图弄清楚均方误差 (MSE) 是如何计算的,tensorflow
并且正在阅读https://www.tensorflow.org/api_docs/python/tf/keras/metrics/mean_squared_error上的帖子。
首先,MSE 被定义为(见https://en.wikipedia.org/wiki/Mean_squared_error):
假设我有一个输出并创建真实值和预测值。
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])
。为什么张量流不计算平均值?
然后,我增加列号。
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
。