如何在cntk中计算损失和度量

问题描述:

我是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)是的。

(2)29.37%表示29.37%的分类是正确的。假设你正在阅读训练和测试数据,评估就是测试数据。 (3)确保输入是相同的格式,我的意思是你规范化或减去你的Python中的平均值,如果是的话,那么你需要在C#中做同样的操作。你可以首先使用Python运行eval并查看你得到了什么结果?

+0

减去平均值后评估结果确实好多了!我们也试图弄清楚如何使用Python进行评估。我们如何判断在蟒蛇列车中是否应用了标准化?我们只知道批量标准化。应如何在C#中对图像数据进行归一化处理,例如使用标准推导或标准化以介于(-1,1)之间的范围? –