Sto provando TensorFlow e sto correndo uno strano errore. Ho modificato il deep MNIST di esempio per usare un altro set di immagini, e l'algoritmo converge di nuovo bene, fino a circa l'iterazione 8000 (precisione del 91% a quel punto) quando si blocca con il seguente errore.L'input dei reclami ReluGrad di TensorFlow non è limitato
tensorflow.python.framework.errors.InvalidArgumentError: ReluGrad input is not finite
In un primo momento ho pensato che forse alcuni coefficienti stavano raggiungendo il limite per un galleggiante, ma l'aggiunta di regolarizzazione L2 su tutti i pesi & pregiudizi non ha risolto il problema. E 'sempre la prima applicazione Relu che viene fuori dalla stacktrace:
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
sto lavorando su CPU solo per ora. Qualche idea su cosa potrebbe causare questo e su come aggirarlo?
Modifica: l'ho tracciato fino a questo problema Tensorflow NaN bug?, la soluzione lì funziona.
Ho anche notato che se la riga 'train_step = tf.train.AdamOptimizer (1e-4) .minimize (cross_entropy)' Modifico il valore su 1e-3, l'arresto anomalo si verifica in modo significativo prima. Tuttavia, cambiandola in 1e-5 impedisce all'algoritmo di convergere. – user1111929
Per Adam, potresti voler aumentare l'argomento 'epsilon'. L'impostazione corrente è 'epsilon = 1e-8'. Guarda la documentazione. Dice "Ad esempio, quando si allena una rete di Inception su ImageNet una buona scelta corrente è 1.0 o 0.1". Vedi anche [questo] (https://github.com/tensorflow/tensorflow/issues/323#issuecomment-159116515) discussione. – Albert