tensorflow-tutorial
tensorflow-tutorial copied to clipboard
第5章5.2.1,节中,我看这里计算了使用非滑动平均和滑动平均的inference。但是在计算交叉熵的时候,只用到了非滑动平均的预测值。而在评价accuracy的时候,却是用了使用滑动平均的预测值。请问这里为什么不用使用滑动平均的预测值来计算交叉熵呢?因为评价的时候就是用了使用滑动平均的预测值啊。
Is this a BUG REPORT or FEATURE REQUEST?:
Uncomment only one, leave it on its own line:
/kind bug /kind feature
What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
这个问题我当时也发现了,后来考虑了一天才搞懂。 1.我做过一个实验,就是用滑动平均来计算交叉熵,训练的效果几乎为0,准确率在0.09左右几乎不动。 2.后来我反复研究,应该这么去解释:滑动平均会儿对变量创建所谓的影子变量,而你在进行BP,是对变量进行更新,故在inference计算交叉熵的时候,用变量。当时你在预测的时候,因为用了滑动平均的优化方法,需要对真实的变量进行滑动平均取值,故在inference也就是评价accuracy时,用滑动平均的inference。
我按照第5章5.2.1节中代码运行,但是准确率很低
如果将
correct_prediction = tf.equal(tf.argmax(average_y, 1), tf.argmax(y_, 1))
改为
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
准确率就和书上的一致了
请问书上是怎么样设置参数得到准确率98.6%的呢?
使用滑动准确模型做的预测结果的准确率和书上的并不符合
代码中滑动均值计算方式有问题。
我也注意到这个问题,目前没理解这两处差别的意义。 mark下