首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >推理结果取决于训练批次中图像的顺序。

推理结果取决于训练批次中图像的顺序。
EN

Stack Overflow用户
提问于 2017-01-27 17:21:59
回答 1查看 572关注 0票数 0

我在相同的5幅图像数据集上训练了两次相同的网络。第一次,每一步的批处理中的图像顺序是相同的。这是第二次,这批人在每次训练前都被洗牌了。两种型号都太合适了。这两种模型都在训练数据集的洗牌图像上进行了测试。firs模型的准确率为100%。`

代码语言:javascript
运行
复制
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]
代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制

相关问题-无

环境:

  • Ubuntu 14.04 64位
  • 库达8.0
  • cuDNN 5.1
  • tensorflow 0.12.1来自具有GPU支持的pip

数据集

来自MNIST的5幅图像

附呈档案

包含可重复示例的代码。

  • runner.py负责准备映像批处理并维护队列。
  • network.py包含简单神经网络的代码(2个卷积层,带relu激活,softmax输出层)
  • train_not_shuffled.py使用非改组的批处理对网络进行培训和测试。
  • train_shuffled.py使用混洗批量对网络进行培训和测试

example.gz

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-30 11:14:51

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

代码语言:javascript
运行
复制
images_batch = images_batch.eval()
labels_batch = labels_batch.eval()

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

代码语言:javascript
运行
复制
images_batch, labels_batch = sess.run(train_runner.get_inputs())

解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41899610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档