2017-08-15 82 views
2

我是cntk和python的新手。我創建了一個基於TrainResNet_CIFAR10.py的python程序來訓練(64x64x3)圖像4736和測試4個類的2180圖像。火車160次以後,我得到了損失= 0.663和公制= 29.37%。完成的評估指標= 18.94%。當我根據CNTKLibraryCSEvalExamples.cs對列車模型進行評估以測試2180圖像時,幾乎所有2180都被歸類爲一個類(第二類)。我的問題是:如何在cntk中計算損失和度量

  1. 我假設損失是從cross_entropy_with_softmax(z,label_var)計算出來的,而metric則是使用classification_error(z,label_var)。我是否正確,他們是如何確定的?
  2. 什麼意思是度量= 29.37%和評估度量= 18.94%?他們分別來自訓練和測試圖像嗎?
  3. 什麼可能導致完全錯誤的評估結果?

任何幫助將不勝感激。

回答

1

(1)是的。

(2)29.37%表示29.37%的分類是正確的。假設你正在閱讀訓練和測試數據,評估就是測試數據。 (3)確保輸入是相同的格式,我的意思是你規範化或減去你的Python中的平均值,如果是的話,那麼你需要在C#中做同樣的操作。你可以首先使用Python運行eval並查看你得到了什麼結果?

+0

減去平均值後評估結果確實好多了!我們也試圖弄清楚如何使用Python進行評估。我們如何判斷在蟒蛇列車中是否應用了標準化?我們只知道批量標準化。應如何在C#中對圖像數據進行歸一化處理,例如使用標準推導或標準化以介於(-1,1)之間的範圍? –