TensorFlowNIST分类::准确度的大幅提高-可能吗?

TensorFlowNIST分类::准确度的大幅提高-可能吗?,tensorflow,Tensorflow,我正在学习TensorFlow并尝试将其应用于MNIST数据库,惊讶地发现在第二个纪元(屏幕截图中的e1)中,整个测试集的准确率从e0期间的9.4%提高到了95%(在对权重和偏差进行任何更新之前!) 准确度有可能有如此大的提高吗 代码: 批量:100 纪元:10000 5层网络(4个隐藏,1个输出;200/100/60/30奈隆) lr=0.001 AdamOptimizer relu和softmax激活功能 考虑到批量大小为100个&mnist培训样本#=55000个。e1之前必须有550

我正在学习TensorFlow并尝试将其应用于MNIST数据库,惊讶地发现在第二个纪元(屏幕截图中的e1)中,整个测试集的准确率从e0期间的9.4%提高到了95%(在对权重和偏差进行任何更新之前!)

准确度有可能有如此大的提高吗

  • 代码:
  • 批量:100
  • 纪元:10000
  • 5层网络(4个隐藏,1个输出;200/100/60/30奈隆)
  • lr=0.001
  • AdamOptimizer
  • relu和softmax激活功能
考虑到批量大小为100个&mnist培训样本#=55000个。e1之前必须有550次更新

我做错什么了吗


提前多谢

您的代码没有问题,因为您正在打印测试精度,并且很快就会提供良好的精度。你的训练损失也在减少

如果你对降低学习速度感兴趣,你可以降低学习速度(比如0.000003)。如果你想让网络慢慢学习,你甚至可以尝试减少图层数或隐藏图层中的单位数

这是我用你的代码得到的准确度,前10个时代的学习率为0.000003

 e0_0, loss: 2.3103301525115967, accuracy: 0.09469999372959137
 e1_550, loss: 2.2732467651367188, accuracy: 0.11469998955726624
 e2_1100, loss: 2.233933210372925, accuracy: 0.1590999811887741
 e3_1650, loss: 2.185560941696167, accuracy: 0.2231999933719635
 e4_2200, loss: 2.1254842281341553, accuracy: 0.31909993290901184
 e5_2750, loss: 2.051886558532715, accuracy: 0.40129992365837097
 e6_3300, loss: 1.9651522636413574, accuracy: 0.4681999087333679
 e7_3850, loss: 1.8645144701004028, accuracy: 0.5381998419761658
 e8_4400, loss: 1.750971794128418, accuracy: 0.6107000112533569
 e9_4950, loss: 1.6259007453918457, accuracy: 0.6584999561309814
 e10_5500, loss: 1.4947171211242676, accuracy: 0.6923999786376953

您的代码没有问题,因为您正在打印测试精度,并且它很快就会提供良好的精度。你的训练损失也在减少

如果你对降低学习速度感兴趣,你可以降低学习速度(比如0.000003)。如果你想让网络慢慢学习,你甚至可以尝试减少图层数或隐藏图层中的单位数

这是我用你的代码得到的准确度,前10个时代的学习率为0.000003

 e0_0, loss: 2.3103301525115967, accuracy: 0.09469999372959137
 e1_550, loss: 2.2732467651367188, accuracy: 0.11469998955726624
 e2_1100, loss: 2.233933210372925, accuracy: 0.1590999811887741
 e3_1650, loss: 2.185560941696167, accuracy: 0.2231999933719635
 e4_2200, loss: 2.1254842281341553, accuracy: 0.31909993290901184
 e5_2750, loss: 2.051886558532715, accuracy: 0.40129992365837097
 e6_3300, loss: 1.9651522636413574, accuracy: 0.4681999087333679
 e7_3850, loss: 1.8645144701004028, accuracy: 0.5381998419761658
 e8_4400, loss: 1.750971794128418, accuracy: 0.6107000112533569
 e9_4950, loss: 1.6259007453918457, accuracy: 0.6584999561309814
 e10_5500, loss: 1.4947171211242676, accuracy: 0.6923999786376953

谢谢!看到如此突然的进步,我有点不知所措!太好了,难以置信。。我想我会问专家意见我做错了什么这并不能回答问题。另外,“如果它在MNIST上工作,就没有bug,也不必担心”是一个非常有害的想法:参见。深入学习的场景不需要更多的鼓励,而是完全相反!我看不出这个答案是这样的:“如果它在MNIST上工作,那么就没有bug,也没有必要担心”。这确实是一篇很好的文章,但我不知道它与这个答案有什么关系。这个答案看起来对我很有帮助。对不起,我一定是完全误读了什么。我将纠正downvoteStill,我认为我的批评是“它学习,因此代码是好的”并不是验证任何机器学习设置的方式。链接支持这样一种观点,即几乎任何东西都可以在MNIST上工作,而且这个标准还不够好。但是我同意你的看法,那是不需要的。谢谢!看到如此突然的进步,我有点不知所措!太好了,难以置信。。我想我会问专家意见我做错了什么这并不能回答问题。另外,“如果它在MNIST上工作,就没有bug,也不必担心”是一个非常有害的想法:参见。深入学习的场景不需要更多的鼓励,而是完全相反!我看不出这个答案是这样的:“如果它在MNIST上工作,那么就没有bug,也没有必要担心”。这确实是一篇很好的文章,但我不知道它与这个答案有什么关系。这个答案看起来对我很有帮助。对不起,我一定是完全误读了什么。我将纠正downvoteStill,我认为我的批评是“它学习,因此代码是好的”并不是验证任何机器学习设置的方式。链接支持这样一种观点,即几乎任何东西都可以在MNIST上工作,而且这个标准还不够好。但我同意你的看法,这不是必须的