我对Tensorflow MNIST教程做了一点改动。 原始代码(fully_connected_feed.py,行194-202):Tensorflow中调用数据之间的数据更改
checkpoint_file = os.path.join(FLAGS.log_dir, 'model.ckpt')
saver.save(sess, checkpoint_file, global_step=global_step)
#Evaluate against the training set.
print('Training Data Eval:')
do_eval(sess,
eval_correct,
images_placeholder,
labels_placeholder,
data_sets.train)
我只是增加了一个评价:
checkpoint_file = os.path.join(FLAGS.log_dir, 'model.ckpt')
saver.save(sess, checkpoint_file, global_step=global_step)
print('Something strange:')
do_eval(sess, eval_correct, images_placeholder,labels_placeholder,
data_sets.train)
#Evaluate against the training set.
print('Training Data Eval:')
do_eval(sess,
eval_correct,
images_placeholder,
labels_placeholder,
data_sets.train)
此评价的结果接近,但不相同(数字变化从发射到发射):
Something strange:
Num examples: 55000 Num correct: 49218 Precision @ 1: 0.8949
Training Data Eval:
Num examples: 55000 Num correct: 49324 Precision @ 1: 0.8968
这怎么可能? UPD:加入连结tensorflow github上: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/tutorials/mnist
不知道张量流量,但这不应该发生一般。 do_eval是否有意想不到的副作用?你检查过文件吗? –
我不知道那些副作用可能来自哪里。 do_eval代码只能调用mnist.py中的evaluate()方法,并且该方法不会更改任何张量。 –
看起来很奇怪。我对tensorflow并不是很熟悉,但我没有看到这种方式可以被认为是理智的行为(我想do_eval应该只是转发样本,并在不改变网络的情况下计算精度)。 –