keras tensorflow 指标总是计算损失
keras tensorflow metric is loss always calculated
我遇到了这个 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
- 如果 loss 不是
METRICS
的一部分,为什么会在每个 epoch 之后显示。 loss
是默认选项吗?它也会出现在回归或多重 class class 化中吗?
- Keras 显示每个
METRICS
的训练和验证数据。是不是因为我们拟合模型的时候提供了验证数据validation_data=(val_features, val_labels)
?如果我们不提供验证数据,是否会出现错误,因为它无法打印验证数据的指标?
1 - 这是默认值,除非你输入 verbose=0
然后什么都没有。是的,在所有情况下它都存在
2 - 是的,如果您不提供 validation_data 那么您将没有任何关于 val 指标的信息
1) 损失是神经网络的训练objective,因此无论回归或分类问题如何,您总是需要它。
它在 Keras 中默认显示。 Keras Loss Documentation
指标用于评估您的模型,因此您可以定义多个指标。
Keras Metrics Documentation
2) 如果您不提供验证数据,顾名思义,Keras 没有数据来验证您的模型,它会抛出错误。
我遇到了这个 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
- 如果 loss 不是
METRICS
的一部分,为什么会在每个 epoch 之后显示。loss
是默认选项吗?它也会出现在回归或多重 class class 化中吗? - Keras 显示每个
METRICS
的训练和验证数据。是不是因为我们拟合模型的时候提供了验证数据validation_data=(val_features, val_labels)
?如果我们不提供验证数据,是否会出现错误,因为它无法打印验证数据的指标?
1 - 这是默认值,除非你输入 verbose=0
然后什么都没有。是的,在所有情况下它都存在
2 - 是的,如果您不提供 validation_data 那么您将没有任何关于 val 指标的信息
1) 损失是神经网络的训练objective,因此无论回归或分类问题如何,您总是需要它。 它在 Keras 中默认显示。 Keras Loss Documentation
指标用于评估您的模型,因此您可以定义多个指标。 Keras Metrics Documentation
2) 如果您不提供验证数据,顾名思义,Keras 没有数据来验证您的模型,它会抛出错误。