【问题标题】:ResNet train and evaluation result don't match on CNTKResNet 训练和评估结果在 CNTK 上不匹配
【发布时间】:2017-05-16 21:01:24
【问题描述】:

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

  1. ResNet 是否可以在 CPUOnly 模式下进行评估?该模型是在 GPU 上进行训练的。
  2. ResNet 是否需要均值文件?我看到一些模型具有平均文件,而另一些则没有。
  3. 有什么特殊原因会导致训练和评估结果不同吗?

提前致谢, 特里

【问题讨论】:

    标签: cntk resnet


    【解决方案1】:

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

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

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

    谢谢,

    【讨论】:

    • 谢谢周,你是对的。图像预处理很可能是原因。在我删除特征中的“# { type = "Crop" ;cropType = "RandomSide" ; sideRatio = 1.0 ; jitterType = "UniRatio" } :" 行后,模型产生了令人惊讶的好结果。 5000 张火车图像的误差为零。我要感谢 CNTK 团队提供的出色工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多