gpt4 book ai didi

python - Keras MSE 定义

转载 作者:行者123 更新时间:2023-11-28 21:38:07 29 4
gpt4 key购买 nike

我偶然发现了 mse 的定义在 Keras 中,我似乎找不到解释。

def mean_squared_error(y_true, y_pred):
return K.mean(K.square(y_pred - y_true), axis=-1)

我期待跨批次的平均值,即 axis=0 ,而是 axis=-1 .

我也玩了一下,看看 K.mean实际上表现得像 numpy.mean .
我一定是误会了什么。有人可以澄清一下吗?

我实际上无法在运行时查看成本函数内部,对吗?
据我所知,该函数是在编译时调用的,这会阻止我评估具体值。

我的意思是......想象一下进行回归并有一个输出神经元并以 10 的批量大小进行训练。
>>> import numpy as np
>>> a = np.ones((10, 1))
>>> a
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
>>> np.mean(a, axis=-1)
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

它所做的只是压平数组,而不是取所有预测的平均值。

最佳答案

K.mean(a, axis=-1)还有 np.mean(a, axis=-1)只是在最终维度上取平均值。这里a是一个形状为 (10, 1) 的数组在这种情况下,在最终维度上取平均值恰好与将其展平为形状为 (10,) 的一维数组相同。 .像这样实现它支持更一般的情况,例如多元线性回归。

此外,您可以使用 keras.backend.print_tensor 在运行时检查计算图中节点的值。 .查看答案:Is there any way to debug a value inside a tensor while training on Keras?

编辑:您的问题似乎是关于为什么损失不返回单个标量值,而是为批处理中的每个数据点返回一个标量值。为了支持样本加权,Keras 损失预计会为批次中的每个数据点返回一个标量。见 losses documentationsample_weight fit 的论据想要查询更多的信息。特别注意:“实际优化目标是所有数据点输出数组的 [加权] 平均值。”

关于python - Keras MSE 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48618525/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com