上周发现在两个计算精确率准确率的玩意儿对不上,满脑子懵了。
感谢这位博主写的文章:tf.metrics.accuracy计算的是正确率吗
所以说【tf.reduce_mean(tf.cast(tf.argmax(z, 1), tf.argmax(y, 1)), tf.float32)】计算的是本batch正确率:
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(z, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
而【tf.metrics.accuracy()】计算的是整个session生存期内所有feed_dict中的数据的正确率。
accuracy = tf.metrics.accuracy(labels=tf.argmax(y, axis=1), predictions=tf.argmax(z, axis=1))[1]