【问题标题】:cntk avg classification error > 1cntk avg 分类误差 > 1
【发布时间】:2017-03-12 21:29:24
【问题描述】:

[使用来自 python 的 CNTK '2.0.beta12.0'] 我正在尝试使用“classification_error(z, label)”评估我的 19 类分类模型,并在训练和测试小批量后调用“trainer.previous_minibatch_evaluation_average()”。训练集上返回的平均值是“.725”(合理),但测试集上返回的平均值是“3.875”(令人困惑)。

我认为分类误差被计算为每个样本的预测/标签比较的平均 0 或 1 值,所以我预计返回的 avg 始终介于 0 和 1 之间。

有人知道这个错误的计算方式是否不同,还是可能导致此类问题的常见错误?

谢谢,罗兰。

【问题讨论】:

  • 附加信息:我刚刚发现如果我让我的测试小批量大小与我的训练大小相同,则返回的平均值看起来正确(并且始终介于 0 和 1 之间)。我的训练 mb size=200 和我的测试 mb size=1000;如果我将正确的测试平均值乘以 5,我会在使用 mb size=1000 时得到报告的测试平均值。
  • 那么,这是一个 CNTK 错误,还是我无法更改 minibatch 大小的设计?谢谢...
  • 您只需点击帖子下方的“编辑”链接即可添加更多信息。请添加您所指的代码。

标签: python cntk


【解决方案1】:

这看起来像是 CNTK 限制/错误。我使用的解决方法是通过小批量与测试大小的比率来缩放返回的平均误差:

avgTestError = float(trainer.previous_minibatch_evaluation_average)  
# correct for CNTK bug  
avgTestError *= minibatch_size / len(xTest)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多