相关疑难解决方法(0)

为什么我在 TensorFlow Keras 中的损失函数和指标之间得到不同的值?

在我使用 TensorFlow 进行 CNN 训练时,我将其用作Keras.losses.poisson损失函数。现在,我喜欢与损失函数一起计算许多指标,并且我观察到这Keras.metrics.poisson给出​​了不同的结果 - 尽管两者是相同的函数。

请参阅此处的一些示例输出:loss输出poisson具有不同的范围,0.5 与 0.12:

Epoch 1/20
Epoch 00001: val_loss improved from inf to 0.53228, saving model to P:\Data\xyz.h5
 - 8174s - loss: 0.5085 - binary_crossentropy: 0.1252 - poisson: 0.1271 - mean_squared_error: 1.2530e-04 - mean_absolute_error: 0.0035 - mean_absolute_percentage_error: 38671.1055 - val_loss: 0.5323 - val_binary_crossentropy: 0.1305 - val_poisson: 0.1331 - val_mean_squared_error: 5.8477e-05 - val_mean_absolute_error: 0.0035 - val_mean_absolute_percentage_error: 1617.8346

Epoch 2/20
Epoch 00002: val_loss improved from 0.53228 to 0.53218, …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow loss-function

8
推荐指数
1
解决办法
3927
查看次数

Keras - 损失和指标计算方式不同?

我在Keras有一个模型,我正在优化均方误差.但是,如果我losses.py在度量标准中使用与Keras中相同的代码,则会得到不同的结果.为什么是这样?

作为指标:

def MSE_metric(y_true, y_pred):
    return K.mean(K.square(y_pred, y_true))
Run Code Online (Sandbox Code Playgroud)

对于模型:

model.compile(optimizer=SGD(lr=0.01, momntum=0.9), loss='MSE', metrics=[MSE_metric])
Run Code Online (Sandbox Code Playgroud)

这导致损失6.07但MSE_metric为0.47

python metric loss neural-network keras

6
推荐指数
1
解决办法
821
查看次数

验证MSE损失与验证MSE指标不同

我用Keras(带有theano后端)编写了一个模型,并像这样编译我的模型:model.compile(Adam(0.001), loss='mse', metrics=['mse', 'mae'])即,我的目标损失函数是均方误差,要报告的指标是均方误差均绝对误差

然后运行我的模型: model.fit(X_train, y_train, nb_epoch=500, validation_data=(X_test, y_test))

Keras将结果报告为:

时代500/500:0s-损失:5.5990-mean_squared_error:4.4311-mean_absolute_error:0.9511-val_loss:7.5573-val_mean_squared_error:6.3877-val_mean_absolute_error:1.1335

我期望val_lossval_mean_squared_error相同。什么是val_loss这里如果不val_mean_squared_error

neural-network keras

5
推荐指数
0
解决办法
869
查看次数