gpt4 book ai didi

python - 使用 Tensor Flow 对 MNIST 手写数字进行 CNN 训练的振荡精度

转载 作者:太空狗 更新时间:2023-10-30 01:06:03 25 4
gpt4 key购买 nike

我正在学习教程“Deep MNIST for Experts”,https://www.tensorflow.org/versions/r0.11/tutorials/mnist/pros/index.html#deep-mnist-for-experts

使用卷积神经网络,我得到了 93.49% 的准确率。这实际上很低,我正在努力改进它,但我有疑问。根据教程,

for i in range(20000):
batch = mnist.train.next_batch(50)
if i%100 == 0:
train_accuracy = accuracy.eval(feed_dict={x:batch[0], y_: batch[1], keep_prob: 1.0})
print("step %d, training accuracy %g"%(i, train_accuracy))
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

每 100 次迭代后记录一次训练的准确度,并看到准确度不断振荡,先增加后减少。

step 100, training accuracy 0.1
step 200, training accuracy 0.13
step 300, training accuracy 0.12
step 400, training accuracy 0.08
step 500, training accuracy 0.12
step 600, training accuracy 0.05
step 700, training accuracy 0.09
step 800, training accuracy 0.1
step 900, training accuracy 0.12
step 1000, training accuracy 0.09
step 1100, training accuracy 0.11
step 1200, training accuracy 0.09
step 1300, training accuracy 0.11
step 1400, training accuracy 0.06
step 1500, training accuracy 0.09
step 1600, training accuracy 0.14
step 1700, training accuracy 0.07
step 1800, training accuracy 0.08
......
step 19800, training accuracy 0.14
step 19900, training accuracy 0.07

有什么理由吗?还是正常的?那为什么会这样呢?另外,我可以改变什么样的变量来提高最终的准确性?我已经尝试过更改学习率变量。

最佳答案

精度波动通常是由过高的 learning_rate 引起的。我的第一个建议确实是降低learning_rate,您是否在对数刻度上测试了多个学习率,例如0.1,0.05,0.02,0.01,0.005,0.002,...?

使用大幅较小的学习率应该可以消除振荡精度。还要检查 this answer关于 Kaggle 和 linked document以获得更好的理解。

编辑:

根据评论中的评论:此准确度是按批处理测量的。由于您每次都在比较不同批处理的精度(简单批处理与较难批处理),因此精度不会单调增加是正常的。您可以进一步减少振荡:

  • 通过增加批量大小,波动应该会减少:不同示例难度的影响将被平均掉。

  • 您还可以计算一组固定示例的训练准确度:

    • 使用验证集

    • 平均一个时期内所有批处理的批处理准确度

    • 在每个训练步骤后实际计算训练集中所有示例的准确度。如果你有一个很大的训练集,这个偏离类(class)对训练时间有很大的影响。

关于python - 使用 Tensor Flow 对 MNIST 手写数字进行 CNN 训练的振荡精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40156629/

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