gpt4 book ai didi

python - TensorFlow 网络不训练?

转载 作者:太空狗 更新时间:2023-10-30 01:00:28 26 4
gpt4 key购买 nike

最近几天我在 TensorFlow 上度过了一段非常奇怪的时光,想不出 atm 出了什么问题。

我建立了这个网络:link .它是 TensorFlow 的 MNIST 示例的副本。

基本上,我所做的是将网络从拍摄 28x28x1 图像(MNIST 灰度)更改为 600x800x1 图像(我自己拍摄的一些图像,网络摄像头具有相对干净的背景和一个位于不同位置的对象)。

我想做的是尝试使用这样一个 CNN 并让它输出图像中对象的 x 位置。所以只有一个输出神经元。

但是,无论我怎样尝试,网络始终输出 1.0。甚至(当您查看代码末尾的测试部分时)当我将全 1、全 0 或全随机数输入网络时。

当然,由于我只有 21 张带标签的训练图片和 7 张带标签的测试图片,我预计性能会非常糟糕(因为 800x600 像素的图像对于神经网络来说是巨大的,并且定位对象并不容易)。

...但我完全不知道为什么网络总是输出 1.0,即使它是无意义的。有什么想法吗?

最佳答案

查看您的源代码,您在 softmax 之前的最终完全连接层(the code you shared 中的 L.104)似乎在计算 softmax 之前将每个示例减少到一个单个输出类。由于每个示例只有一个类,因此 tf.nn.softmax() 的结果op (y_conv) 将是一个 batch_size x 1 矩阵,每个元素都包含 1.0,tf.argmax()其中的每个元素都包含 0,因为只有一个值。同样,将 tf.argmax() 应用于 y_train(这是一个 batch_size x 1 矩阵)将为每个元素产生 0,因此“准确度”将为 100%。

要解决此问题,您可能应该 (i) 将最终全连接层的输出单元数增加为类数,并且 (ii) 将每一行 y_train 编码为一个-表示每个示例的真实类的热向量。

关于python - TensorFlow 网络不训练?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886605/

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