【发布时间】:2017-09-30 05:40:41
【问题描述】:
我开始使用 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
他们(和他们的平均水平)不断变化。
【问题讨论】:
标签: testing tensorflow regression evaluation loss