我开始使用 TensorFlow。 https://www.tensorflow.org/get_started/
当我多次评估如何提供数据时,我发现损失随着执行而变化。
eval_input_fn = tf.contrib.learn.io.numpy_input_fn({"x":x}, y, batch_size=4,
num_epochs=1)
estimator.evaluate(input_fn = eval_input_fn)
例如,我有以下损失:
当 batch_size == 2, num_epochs == 2 时为 0.024675447 或 0.030844312
当 batch_size == 4, num_epochs == 2 时为 0.020562874 或 0.030844312
当 batch_size == 4, num_epochs == 1 时为 0.015422156 或 0.030844312
这种现象正常吗?我不明白它背后的原理。
--- 添加了以下内容
当我使用 next_batch 和 eval() 而不像在https://www.tensorflow.org/get_started/mnist/pros中那样重新训练时,也会发生同样的事情。当我运行以下单元格时:
# mnist.test.labels.shape: (10000, 10)
for i in range(10):
batch = mnist.test.next_batch(1000)
print("test accuracy %g"%accuracy.eval(feed_dict={
x: batch[0], y_: batch[1], keep_prob: 1.0}))
我有
一个)
测试精度 0.99
测试精度 0.997
测试精度 0.986
测试精度 0.993
测试精度 0.994
测试精度 0.993
测试精度 0.995
测试精度 0.995
测试精度 0.99
测试精度 0.99
b)
测试精度 0.99
测试精度 0.997
测试精度 0.989
测试精度 0.992
测试精度 0.993
测试精度 0.992
测试精度 0.994
测试精度 0.993
测试精度 0.993
测试精度 0.99
他们(和他们的平均值)不断变化。