gpt4 book ai didi

machine-learning - Tensorflow:训练批处理中的所有项目都具有相同的预测标签

转载 作者:行者123 更新时间:2023-11-30 09:51:24 25 4
gpt4 key购买 nike

我正在尝试在 Tensorflow 上使用卷积神经网络解决经典的 MNIST 任务。我的输入是来自 Kaggle 的数据:https://www.kaggle.com/c/digit-recognizer/data

我是机器学习的新手,所以我的代码基本上是来自各种来源的复制粘贴+我自己的黑客攻击的混合。

目前我的代码如下:https://gist.github.com/arodiss/90ea76e5f5545af6b11e7f1dcfee01b5

请注意,目前我只输出预测标签(模型输出的 softmax 的 argmax),而不是输出精度

输出如下:

[8 6 4 2 6 8 7 6 6 7 6 6 4 7 0 6]
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
[9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9]
[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
[4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4]
[7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7]
[4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4]
[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
[3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3]

( ... and so on)

所以基本上在每个小批量中,除了第一个(随机)小批量之外,所有示例都具有相同的标签,这显然是错误的。当我自己输出概率时,我得到这样的结果:

[[  4.38091134e-30   1.28820540e-15   1.00000000e+00   1.73298234e-28
7.69853474e-13 2.90028703e-19 9.43878135e-12 5.07752279e-17
3.48896642e-33 3.62770106e-26]
[ 0.00000000e+00 2.62364278e-33 3.19788233e-34 0.00000000e+00
3.95365081e-34 1.00000000e+00 1.16309332e-11 0.00000000e+00
5.20279699e-38 0.00000000e+00]
[ 3.01065546e-22 3.79994231e-11 3.48180471e-08 1.23861001e-14
4.11970850e-31 1.00000000e+00 4.88898765e-25 0.00000000e+00
4.25802429e-18 0.00000000e+00]

(... and so on)

有什么建议可以解决这个特定问题吗?总体有什么建议吗? (作为一个新手,我可能以错误的方式做了很多事情)

找到答案:我将数据编码为“ channel 优先”,但将其视为“ channel 最后”。通过卷积,这会导致指定的结果,即批处理中的所有项目都具有相同的标签

最佳答案

MNIST 是一个经典示例,实际上是官方 tensorflow 教程 ( https://www.tensorflow.org/get_started/mnist/beginners ) 的一部分。

我认为这里的问题是您没有对数据集进行洗牌,并且仅使用相同标签对小批量进行训练,并且您有点了解到使用批量归一化。您的 sample 也可能在每个小批量中具有相同的标签。您应该给出一个准确性指标来判断您的程序。

关于machine-learning - Tensorflow:训练批处理中的所有项目都具有相同的预测标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44419709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com