J'étais en train de TensorFlow et j'ai justement quelque chose qui donne un NaN. J'aimerais savoir ce que c'est mais je ne sais pas comment faire. Le principal problème est que dans un "normal" de procédure du programme, je voudrais juste écrire une instruction print, juste avant l'opération est exécutée. Le problème avec TensorFlow est que je ne peux pas le faire parce que j'ai d'abord déclarer (ou définir) le graphique, afin d'ajouter des instructions d'impression du graphique, définition n'aide pas. Existe-il des règles, des conseils, des heuristiques, rien à traquer ce qui pourrait être la cause de l'NaN?
Dans ce cas je sais plus précisément ce qu'est la ligne de regarder parce que j'ai le texte suivant:
Delta_tilde = 2.0*tf.matmul(x,W) - tf.add(WW, XX) #note this quantity should always be positive because its pair-wise euclidian distance
Z = tf.sqrt(Delta_tilde)
Z = Transform(Z) # potentially some transform, currently I have it to return Z for debugging (the identity)
Z = tf.pow(Z, 2.0)
A = tf.exp(Z)
lorsque cette ligne est présente, j'ai ce qu'il renvoie NaN déclarée par mon résumé des écrivains. Pourquoi est-ce? Est-il un moyen d'explorer au moins quelle est la valeur de Z a, après sa place enracinée?
Pour l'exemple que j'ai posté, j'ai essayé d' tf.Print(0,Z)
, mais sans succès, il imprimées rien. Comme dans:
Delta_tilde = 2.0*tf.matmul(x,W) - tf.add(WW, XX) #note this quantity should always be positive because its pair-wise euclidian distance
Z = tf.sqrt(Delta_tilde)
tf.Print(0,[Z]) # <-------- TF PRINT STATMENT
Z = Transform(Z) # potentially some transform, currently I have it to return Z for debugging (the identity)
Z = tf.pow(Z, 2.0)
A = tf.exp(Z)
En fait, je ne comprends pas ce qu' tf.Print
est supposé faire. Pourquoi est-il besoin de deux arguments? Si je veux imprimer 1 tenseur pourquoi aurais-je besoin de passer 2? Me parait bizarre.
J'ai été à la recherche à la fonction tf.add_check_numerics_ops() mais elle ne dit pas comment l'utiliser (en plus des docs semblent pas être super utile). Personne ne sait comment l'utiliser?
Depuis que j'ai eu des commentaires sur les données peuvent être mauvais, je suis en utilisant la norme MNIST. Cependant, je suis d'informatique en une quantité qui est positif (pair-wise eucledian distance), puis place l'enracinement. Donc, je ne vois pas comment les données spécifiquement serait un problème.