3 votes

comment les pertes et les mesures sont calculées dans le cntk

Je suis nouveau dans le domaine du cntk et du python. J'ai créé un programme python basé sur TrainResNet_CIFAR10.py pour entraîner 4736 images (64x64x3) et tester 2180 images avec 4 classes. Après 160 époques d'entraînement, j'ai obtenu une perte = 0,663 et une métrique = 29,37%. La métrique de l'évaluation finale est de 18,94 %. Lorsque j'évalue le modèle d'entraînement basé sur CNTKLibraryCSEvalExamples.cs pour tester 2180 images, presque toutes les 2180 sont classées dans une seule classe (deuxième classe). Mes questions sont les suivantes :

  1. Je suppose que la perte est calculée à partir de cross_entropy_with_softmax(z, label_var) et que la métrique utilise classification_error(z, label_var). Ai-je raison et comment sont-elles déterminées ?
  2. Que signifient la métrique = 29,37 % et la métrique d'évaluation = 18,94 % ? S'agit-il d'images d'entraînement et d'images de test, respectivement ?
  3. Qu'est-ce qui pourrait entraîner des résultats d'évaluation totalement erronés ?

Toute aide sera grandement appréciée.

1voto

Emad Barsoum Points 466

(1) Oui.

(2) 29,37 % signifie que 29,37 % des classifications sont correctes. L'évaluation porte sur les données de test, en supposant que vous lisez à la fois les données de formation et les données de test.

(3) Assurez-vous que le format d'entrée est le même, c'est-à-dire que vous normalisez ou soustrayez la moyenne dans votre python, si c'est le cas, vous devez faire la même chose en C#. Pouvez-vous exécuter l'évaluation en utilisant d'abord Python et voir quel résultat vous obtenez ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X