Я пытаюсь TensorFlow, и у меня возникает странная ошибка. Я редактировал глубокий пример MNIST, чтобы использовать другой набор изображений, и алгоритм сходится хорошо снова, пока вокруг iteration 8000 (точность 91% в этой точке), когда он выходит из строя со следующей ошибкой.Вложения RelusGrad от TensorFlow не являются конечными
tensorflow.python.framework.errors.InvalidArgumentError: ReluGrad input is not finite
Сначала я думал, что, возможно, некоторые коэффициенты достигали предел для поплавка, но добавление l2 упорядочению всех весов & уклонов не удалось решить эту проблему. Это всегда первое приложение Relu, что выходит из StackTrace:
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
Я работаю на CPU только сейчас. Любая идея, что может вызвать это и как обойти его?
Редактировать: Я проследил его до этой проблемы Tensorflow NaN bug?, решение там работает.
Я также заметил, что если строка 'train_step = tf.train.AdamOptimizer (1e-4) .minimize (cross_entropy)' Я изменяю значение до 1e-3, авария происходит значительно раньше. Однако изменение его до 1e-5 не позволяет алгоритму сходиться. – user1111929
Для Адама вы можете увеличить аргумент 'epsilon'. Текущее значение по умолчанию - 'epsilon = 1e-8'. Посмотрите документацию. В нем говорится: «Например, при обучении начальной сети на ImageNet текущий хороший выбор - 1,0 или 0,1». Также см. [This] (https://github.com/tensorflow/tensorflow/issues/323#issuecomment-159116515) обсуждение. – Albert