【发布时间】:2018-12-19 20:50:08
【问题描述】:
我得到不同的 AUROC,具体取决于我计算的时间。我的代码是
def auc_roc(y_true, y_pred):
# any tensorflow metric
value, update_op = tf.metrics.auc(y_true, y_pred)
return update_op
model.compile(loss='binary_crossentropy', optimizer=optim, metrics=['accuracy', auc_roc])
my_callbacks = [roc_callback(training_data=(x_train, y_train),validation_data=(x_test,y_test))]
model.fit(x_train, y_train, validation_data=(x_test, y_test), callbacks=my_callbacks)
roc_callback 是一个 Keras 回调,它使用来自 sklearn 的 roc_auc_score 在每个 epoch 结束时计算 AUROC。我使用here定义的代码。
当我训练模型时,我得到以下统计数据:
Train on 38470 samples, validate on 9618 samples
Epoch 1/15
38470/38470 [==============================] - auc_roc: 0.5116 - val_loss: 0.6899 - val_acc: 0.6274 - val_auc_roc: 0.5440
roc-auc_val: 0.5973
Epoch 2/15
38470/38470 [==============================] - auc_roc: 0.5777 - val_loss: 0.6284 - val_acc: 0.6870 - val_auc_roc: 0.6027
roc-auc_val: 0.6391
.
.
.
.
.
.
.
Epoch 12/15
38470/38470 [==============================] - auc_roc: 0.8754 - val_loss: 0.9569 - val_acc: 0.7747 - val_auc_roc: 0.8779
roc-auc_val: 0.6369
那么训练期间的 AUROC 是如何随着每个 epoch 的增加而计算的呢?为什么它与在 epoch 结束时计算的不同?
【问题讨论】:
标签: python tensorflow keras