Próbuję TensorFlow i mam dziwny błąd. Zmontowałem głęboki przykład MNIST, aby użyć innego zestawu obrazów, a algorytm znowu ładnie się zestala, aż dookoła iteracji 8000 (dokładność 91% w tym punkcie), gdy zawiedzie się z następującym błędem.TensorFlow's ReluGrad roszczenia roszczeń nie jest skończona
tensorflow.python.framework.errors.InvalidArgumentError: ReluGrad input is not finite
Na początku myślałem, że może niektóre współczynniki zostały osiągnięciu limitu pływaka, ale dodanie l2 uregulowania wszystkich odważników & uprzedzeń nie rozwiązało problemu. Jest to zawsze pierwsza aplikacja relu, która pochodzi z stacktrace:
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
Na razie pracuję tylko na procesorze. Jakiś pomysł, co może spowodować ten problem i jak go obejść?
Edycja: Porównałem to z tym problemem Tensorflow NaN bug?, rozwiązanie tam działa.
Zauważyłem również, że jeśli linia 'train_step = tf.train.AdamOptimizer (1e-4) .minimize (cross_entropy)' Zmienię wartość na 1e-3, awaria nastąpi znacznie wcześniej. Jednak zmiana go na 1e-5 zapobiega konwergencji algorytmu. – user1111929
Dla Adama, możesz chcieć zwiększyć argument "epsilon". Aktualną wartością domyślną jest 'epsilon = 1e-8'. Spójrz na dokumentację. Mówi "Na przykład podczas szkolenia sieci Inception w ImageNet aktualny dobry wybór to 1.0 lub 0.1." Zobacz także dyskusję [this] (https://github.com/tensorflow/tensorflow/issues/323#issuecomment-159116515). – Albert