我目前正在通过移植来自此tutorial的inception-v3重新训练脚本中的功能,在Tensorflow中尝试新的高级tf.contrib.learn API:
但是,我目前在修改后的脚本上获得了97%的准确率,远远高于原始版本的91%准确度。
我是否知道是否因为tf.contrib.learn API中更好的底层实现或者我在2个脚本中计算出不同的准确性而发生这种情况?
这些是一些代码片段,以使其更清晰。
方法1:修改过的脚本
# Calculate accuracy as additional eval metric
eval_metric_ops = {
"accuracy": tf.metrics.accuracy(targets, one_hot_classes)
}
方法2:原始的retrain.py
with tf.name_scope('accuracy'):
with tf.name_scope('correct_prediction'):
prediction = tf.argmax(result_tensor, 1)
correct_prediction = tf.equal(
prediction, tf.argmax(ground_truth_tensor, 1))
with tf.name_scope('accuracy'):
evaluation_step = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))