keras张量流度量标准始终是损失计算

时间:2020-01-30 15:23:57

标签: tensorflow keras loss

我遇到了这个page。它如下定义METRICS。我的问题是

METRICS = [
          keras.metrics.TruePositives(name='tp'),
          keras.metrics.FalsePositives(name='fp'),
          keras.metrics.TrueNegatives(name='tn'),
          keras.metrics.FalseNegatives(name='fn'), 
          keras.metrics.BinaryAccuracy(name='accuracy'),
          keras.metrics.Precision(name='precision'),
          keras.metrics.Recall(name='recall'),
          keras.metrics.AUC(name='auc'),
    ]

Train on 182276 samples, validate on 45569 samples
    Epoch 1/100
    182276/182276 [==============================] - 2s 12us/sample - loss: 0.0139 - tp: 7.0000 - fp: 124.0000 - tn: 181835.0000 - fn: 310.0000 - accuracy: 0.9976 - precision: 0.0534 - recall: 0.0221 - auc: 0.7262 - val_loss: 0.0074 - val_tp: 4.0000 - val_fp: 0.0000e+00 - val_tn: 45492.0000 - val_fn: 73.0000 - val_accuracy: 0.9984 - val_precision: 1.0000 - val_recall: 0.0519 - val_auc: 0.8742
    Epoch 2/100
    182276/182276 [==============================] - 0s 3us/sample - loss: 0.0076 - tp: 91.0000 - fp: 30.0000 - tn: 181929.0000 - fn: 226.0000 - accuracy: 0.9986 - precision: 0.7521 - recall: 0.2871 - auc: 0.8828 - val_loss: 0.0053 - val_tp: 39.0000 - val_fp: 7.0000 - val_tn: 45485.0000 - val_fn: 38.0000 - val_accuracy: 0.9990 - val_precision: 0.8478 - val_recall: 0.5065 - val_auc: 0.8761
    Epoch 3/100
    182276/182276 [==============================] - 0s 3us/sample - loss: 0.0064 - tp: 146.0000 - fp: 36.0000 - tn: 181923.0000 - fn: 171.0000 - accuracy: 0.9989 - precision: 0.8022 - recall: 0.4606 - auc: 0.8981 - val_loss: 0.0049 - val_tp: 45.0000 - val_fp: 7.0000 - val_tn: 45485.0000 - val_fn: 32.0000 - val_accuracy: 0.9991 - val_precision: 0.8654 - val_recall: 0.5844 - val_auc: 0.8828
  1. 如果每个时期都不属于METRICS,为什么会显示损失。 loss是默认选项吗?还会用于回归或多类分类吗?
  2. Keras显示每个METRICS的训练和验证数据。是因为我们在拟合模型时提供了验证数据validation_data=(val_features, val_labels)?如果我们不提供验证数据,是否会因为无法打印验证数据指标而报错?

2 个答案:

答案 0 :(得分:1)

1-默认情况下,除非您输入verbose=0,否则没有任何内容。是的,在所有情况下都存在

2-是的,如果您不提供validation_data,那么您的价格指标将一无所有

答案 1 :(得分:1)

1)损失是您的神经网络的训练目标,因此,无论回归或分类问题如何,您总是需要它。 默认情况下,它在Keras中显示。 Keras Loss Documentation

度量用于评估模型,因此可以定义多个模型。 Keras Metrics Documentation

2)如果不提供验证数据,顾名思义,Keras将没有任何数据可用于验证模型,