Python 如何在tf.keras.metrics.top\u k\u分类精度中向精度函数添加过滤条件
我使用keras获得我的模型的top-k精度。但我希望在精度>=0.7时获得top-k精度 我正在使用以下功能:Python 如何在tf.keras.metrics.top\u k\u分类精度中向精度函数添加过滤条件,python,tensorflow,keras,metrics,tf.keras,Python,Tensorflow,Keras,Metrics,Tf.keras,我使用keras获得我的模型的top-k精度。但我希望在精度>=0.7时获得top-k精度 我正在使用以下功能: def top_5_accuracy(y_true, y_pred): return top_k_categorical_accuracy(y_true, y_pred, k=5) 输出: 72210/72210 [==============================] - 112s 2ms/step - loss: 0.0203 - top_5_accuracy:
def top_5_accuracy(y_true, y_pred):
return top_k_categorical_accuracy(y_true, y_pred, k=5)
输出:
72210/72210 [==============================] - 112s 2ms/step - loss: 0.0203 - top_5_accuracy: 0.5712 - val_loss: 0.0162 - val_top_5_accuracy: 0.7683
Epoch 2/20
72210/72210 [==============================] - 110s 2ms/step - loss: 0.0114 - top_5_accuracy: 0.7217 - val_loss: 0.0162 - val_top_5_accuracy: 0.7789
Epoch 3/20
72210/72210 [==============================] - 111s 2ms/step - loss: 0.0096 - top_5_accuracy: 0.7826 - val_loss: 0.0188 - val_top_5_accuracy: 0.7686
Epoch 4/20
72210/72210 [==============================] - 113s 2ms/step - loss: 0.0087 - top_5_accuracy: 0.8185 - val_loss: 0.0220 - val_top_5_accuracy: 0.7465
Epoch 5/20
72210/72210 [==============================] - 107s 1ms/step - loss: 0.0080 - top_5_accuracy: 0.8428 - val_loss: 0.0257 - val_top_5_accuracy: 0.7094
Epoch 6/20
72210/72210 [==============================] - 114s 2ms/step - loss: 0.0075 - top_5_accuracy: 0.8603 - val_loss: 0.0354 - val_top_5_accuracy: 0.6726
80234/80234 [==============================] - 21s 265us/step
但是,当精度>=0.7时,我不知道如何更改以获得top-k精度
如果有人有任何想法,那将是一个巨大的帮助
非常感谢。更改精度功能。首先计算精度(或任何度量),如果精度大于0.7,则返回top-k,否则返回其他值。我很确定编译时定义的度量不是tf或keras用来优化训练的,所以它只是为了显示。