Erro NaN do Tensorflow?

Estou usando o TensorFlow e modifiquei otutorial exemplo para tirar minhas imagens RGB.

O algoritmo funciona perfeitamente no novo conjunto de imagens, até que de repente (ainda convergindo, geralmente tem 92% de precisão), ele trava com o erro de que o ReluGrad recebeu valores não-finitos. A depuração mostra que nada incomum acontece com os números até que, de repente, por motivo desconhecido, o erro é gerado. Adicionando

print "max W vales: %g %g %g %g"%(tf.reduce_max(tf.abs(W_conv1)).eval(),tf.reduce_max(tf.abs(W_conv2)).eval(),tf.reduce_max(tf.abs(W_fc1)).eval(),tf.reduce_max(tf.abs(W_fc2)).eval())
print "max b vales: %g %g %g %g"%(tf.reduce_max(tf.abs(b_conv1)).eval(),tf.reduce_max(tf.abs(b_conv2)).eval(),tf.reduce_max(tf.abs(b_fc1)).eval(),tf.reduce_max(tf.abs(b_fc2)).eval())

como código de depuração para cada loop, gera a seguinte saída:

Step 8600
max W vales: 0.759422 0.295087 0.344725 0.583884
max b vales: 0.110509 0.111748 0.115327 0.124324
Step 8601
max W vales: 0.75947 0.295084 0.344723 0.583893
max b vales: 0.110516 0.111753 0.115322 0.124332
Step 8602
max W vales: 0.759521 0.295101 0.34472 0.5839
max b vales: 0.110521 0.111747 0.115312 0.124365
Step 8603
max W vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38
max b vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38

Como nenhum dos meus valores é muito alto, a única maneira de um NaN acontecer é por um 0/0 mal tratado, mas como esse código de tutorial não faz nenhuma divisão ou operação similar, não vejo outra explicação além disso. o código TF interno.

Não sei o que fazer com isso. Alguma sugestão? O algoritmo está convergindo muito bem, sua precisão no meu conjunto de validação foi subindo constantemente e atingiu 92,5% na iteração 8600.

questionAnswers(10)

yourAnswerToTheQuestion