Le courant tf.contrib.metrics.streaming_accuracy
est seulement capable de calculer la précision du top 1, et non le top k. Pour contourner le problème, ce que je l'ai utilisé:TensorFlow: Existe-t-il une métrique permettant de calculer et de mettre à jour la précision du top k?
tf.reduce_mean(tf.cast(tf.nn.in_top_k(predictions=predictions, targets=labels, k=5), tf.float32))
Cependant, cela ne me donne pas une façon de calculer les exactitudes de diffusion en continu en moyenne sur chaque lot, ce qui serait utile pour obtenir une précision d'évaluation stable. Je suis actuellement en train de calculer manuellement cette précision de top 5 en streaming en utilisant sa sortie numpy, mais cela signifie que je ne serai pas capable de visualiser cette métrique sur tensorboard.
Existe-t-il un moyen d'avoir une implémentation plus simple en créant une fonction accuracy_update, ou existe-t-il une fonction existante qui le fait déjà?
Merci.
Merci pour votre conseils! La fonction fonctionne exactement comme prévu. – kwotsin
Quels types de données et quelles formes sont vos prédictions et vos étiquettes? J'essaie d'utiliser cette fonction aussi mais j'obtiens un InvalidArgumentError disant que les cibles [0] sont hors limites – GPhilo
Nevermind, a trouvé le problème (j'utilisais l'argmax (logits) comme 'prédictions' au lieu des logits eux-mêmes) – GPhilo