我在相同的5幅图像数据集上训练了两次相同的网络。第一次,每一步的批处理中的图像顺序是相同的。这是第二次,这批人在每次训练前都被洗牌了。两种型号都太合适了。这两种模型都在训练数据集的洗牌图像上进行了测试。firs模型的准确率为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]The second model shows accuracy close to a random guess. ```
```javascript预测标签
1 4 3 6 7
3 6 4 1 7
1 6 3 7 4
4 7 3 6 1
3 6 7 4 1
1 3 7 4 6
1 4 7 3 6
相关问题-无
环境:
数据集
来自MNIST的5幅图像
附呈档案
包含可重复示例的代码。
我对模型进行了多次重新培训,尝试了不同的数据集和网络体系结构。我将图形可视化,以确保推理使用相同的变量。我还可视化了权重,在两种情况下,它们看起来略有不同,但不包含任何可以解释这种行为的异常。
发布于 2017-01-30 11:14:51
错误在测试代码中。这一行
images_batch = images_batch.eval()
labels_batch = labels_batch.eval()单独运行,因此图像和标签实际上来自不同的批次。如果批次相同,标签对应的图像和测试结果是完美的。另一方面,当批次被洗牌时,测试预测会与错误的标签进行比较,所以结果很差。将上述两行替换为
images_batch, labels_batch = sess.run(train_runner.get_inputs())解决了这个问题。
https://stackoverflow.com/questions/41899610
复制相似问题