【问题标题】:Inference results depend on order of images in training batch推理结果取决于训练批次中图像的顺序
【发布时间】:2017-06-13 11:13:39
【问题描述】:

我已经在包含 5 张图像的同一数据集上训练了两次相同的网络。第一次,每个步骤的批次中的图像顺序相同。第二次,在每个训练步骤之前对批次进行洗牌。两种模型都过拟合。两种模型都在训练数据集中的混洗图像上进行了测试。 第一个模型显示出 100% 的准确度。 ```

Prediction  Labels
[6 1 4 3 7] [6 1 4 3 7]
[3 4 1 7 6] [3 4 1 7 6]
[6 1 4 3 7] [6 1 4 3 7]
[4 3 7 6 1] [4 3 7 6 1]
[4 7 6 3 1] [4 7 6 3 1]
[1 3 7 6 4] [1 3 7 6 4]
[3 1 6 7 4] [3 1 6 7 4]

```

第二个模型显示接近随机猜测的准确性。 ```

Prediction  Labels
[1 4 3 6 7] [7 4 6 3 1]
[3 6 4 1 7] [7 4 3 1 6]
[1 6 3 7 4] [1 6 4 3 7]
[4 7 3 6 1] [1 6 4 3 7]
[3 6 7 4 1] [4 1 3 7 6]
[1 3 7 4 6] [6 3 4 7 1]
[1 4 7 3 6] [3 7 1 4 6]

```

相关问题 - 无

环境:

  • Ubuntu 14.04 64 位
  • CUDA 8.0
  • cuDNN 5.1
  • 来自 pip 的 tensorflow 0.12.1,支持 GPU

数据集

来自 MNIST 的 5 张图片

附加档案

包含可重现示例的代码。

  • runner.py 负责准备图像批次并维护队列。
  • network.py 包含简单神经网络的代码(2 个带 relu 激活的卷积层,softmax 输出层)
  • train_not_shuffled.py 使用非混洗批次训练和测试网络
  • train_shuffled.py 使用 shuffled batch 训练和测试网络

example.gz

我已经多次重新训练模型,尝试了不同的数据集和网络架构。我已经可视化了图表以确保推理使用相同的变量。我还对权重进行了可视化,它们在两种情况下看起来略有不同,但不包含任何可以解释这种行为的异常情况。

【问题讨论】:

  • 你说两个模型都过拟合,所以它们在训练数据上的准确率都接近 100%?我认为您在测试中与错误的标签进行比较,即输出模型的预测并查看它正在查看的图像,然后手动对其进行分类
  • 我使用相同的代码来测试两个模型,所以标签会在两种情况下混合使用。实际上,错误的实验室顺序或洗牌中的一些错误是我的第一个猜测,所以我仔细检查了这些。
  • 这两个模型都过拟合了,这意味着它们在训练集上接近完美。但是后来你说你在训练集上进行了测试并且接近随机。所以你测试它的东西很混乱
  • 建议检查内容: - 在两种情况下都使用训练数据集进行测试。具体来说,使用相同的副本。然后,测试的准确性应该与训练的准确性相匹配。 - 将批量大小更改为 1 以进行测试。准确性是否取决于批量大小?除非您不使用批量标准化或其他利用批量统计的算法,否则这可能会提供进一步的见解。
  • 训练和测试图像通过不同的路径进入网络。训练图像从队列中获取,而测试图像通过 feed dict 到达占位符。这可以解释为什么推理结果与训练不同,但不能解释为什么它们取决于训练批次中的顺序。

标签: tensorflow


【解决方案1】:

错误出在测试代码中。这行

images_batch = images_batch.eval()
labels_batch = labels_batch.eval()

单独运行,因此图像和标签实际上来自不同的批次。如果批次相同,则标签与图像相对应,并且测试结果是完美的。另一方面,当批次被打乱时,测试预测与错误的标签进行比较,因此结果很差。 将上面两行替换为

images_batch, labels_batch = sess.run(train_runner.get_inputs())

解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2017-04-02
    • 2020-11-02
    • 2020-07-25
    • 2019-08-06
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多