Я начинаю работать с 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)
Например, у меня были следующие убытки:
0,024675447 или 0,030844312, когда batch_size == 2, num_epochs == 2
0,020562874 или 0,030844312, когда batch_size == 4, num_epochs == 2
0,015422156 или 0,030844312, когда batch_size == 4, num_epochs == 1
Является ли это явление нормальным? Я не понимаю принципа, лежащего в основе этого.
--- добавлено следующее
То же самое происходит, когда я использую 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}))
я получил
a)
точность теста 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
и они (и их среднее значение) продолжают меняться.