Python 当我增加神经元或层的数量时,我的tensorflow模型训练失败

Python 当我增加神经元或层的数量时,我的tensorflow模型训练失败,python,tensorflow,neural-network,deep-learning,Python,Tensorflow,Neural Network,Deep Learning,我参考tensorflow教程[1],使用tensorflow制作了一个卷积神经网络模型来识别笔迹。该模型使用卷积滤波器1:[5,5,1,16]、滤波器2:[5,5,16,32]、完全组合的层[7*7*321024]和[1024,10],然后使用softmax将其转换为概率。我运行了这个模型,但失败了,因为“损失”从未减少,所有输出都是[0,0,1,0,0,0,0,0,0,0] 然后,我减少了过滤器和神经元的数量,成功了,准确率达到97% 当我用同样数量的过滤器和神经元制作模型时,为什么我不能成

我参考tensorflow教程[1],使用tensorflow制作了一个卷积神经网络模型来识别笔迹。该模型使用卷积滤波器1:[5,5,1,16]、滤波器2:[5,5,16,32]、完全组合的层[7*7*321024]和[1024,10],然后使用softmax将其转换为概率。我运行了这个模型,但失败了,因为“损失”从未减少,所有输出都是[0,0,1,0,0,0,0,0,0,0]

然后,我减少了过滤器和神经元的数量,成功了,准确率达到97%

当我用同样数量的过滤器和神经元制作模型时,为什么我不能成功地训练

这是我失败的模型。(我使用了“mnist.csv”)

打印(“测试精度:{0}”。格式(accurity.eval(feed_dict={x:x_测试,t:t_测试}))


[1] :
在此处输入代码

您正在调用
softmax\u cross\u entropy\u,并在
softmax
的输出上使用
。这会应用softmax两次,导致错误的结果<在应用
softmax
之前,应在最后一层的线性输出上调用code>softmax\u cross\u entropy\u with\u logits:

y = tf.matmul(h_fc1,W_fc2) + b_fc2
cross_entropy=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=t, logits=y))

prediction_probabilities = tf.nn.softmax(y)
prediction_class = tf.argmax(y, 1)

只有在需要每个类的概率时,才需要上面的
预测\u概率
张量。否则,您可以直接在
y
上调用
argmax
,以获取预测的类。

非常感谢。我犯了一个基本错误。我将修改它。
y = tf.matmul(h_fc1,W_fc2) + b_fc2
cross_entropy=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=t, logits=y))

prediction_probabilities = tf.nn.softmax(y)
prediction_class = tf.argmax(y, 1)