ResNet 训练和评估结果在 CNTK 上不匹配

ResNet train and evaluation result don't match on CNTK

我有一个图像分类应用程序,有 6 个 类,图像大小为 128x64x3。我使用 ResNet 20 模型进行训练,错误率约为 2%。然而,在同一组训练图像上的评估结果超过了 20%。评估使用带有 onEvaluateAnColorImage 函数的 nuget CNTK.CPUOnly/2.0。问题是:

  1. ResNet 是否在 CPUOnly 模式下工作以进行评估?该模型是在 GPU 开启的情况下训练的。
  2. ResNet 是否需要均值文件?我看到一些模型有平均文件,有些没有。
  3. 有什么特殊原因会导致训练和评估结果的差异?

提前致谢, 特里

使用 GPU 训练的 Resnet 应该适用于 CPUOnly 评估。如果可能,您可以在 GPU 设备上使用 CNTK.GPU Nuget 包和 运行 您的应用程序来检查您是否仍然看到准确性差异。如果是,请告诉我们,我们会进行调查。

如果您在训练期间使用均值文件,那么您也应该在评估期间减去均值。

另一个可能导致差异的原因可能是图像预处理。训练通常使用readers,它会自动执行调整大小和通道转换,但您必须自己进行评估,因为不涉及reader。您可以找到图像评估示例 here.

谢谢,