2017-05-07 2 views
0

J'entraîne un RNN et parfois la nuit la fonction de perte atteint NaN. J'ai lu qu'une solution à cela est de diminuer le taux d'apprentissage. Lorsque je tente de redémarrer l'entraînement à partir du (seul) point de contrôle que j'ai et en utilisant un plus petit taux d'apprentissage, je reçois toujours NaN. Cela signifie-t-il que mon point de contrôle est irréparable? Est-il un moyen de récupérer celui-ci OU utiliser tf.train.Saver de telle sorte que je suis garanti une version du modèle avant qu'il n'atteigne un point de non-retour?Récupérer un point de contrôle après avoir atteint une perte de NaN?

+0

Si le taux d'apprentissage était votre problème, je m'attendrais à voir NaN dès la première époque, pas après de nombreuses itérations. –

Répondre

0

Si votre point de contrôle a des valeurs NaN, il n'y a probablement pas beaucoup à faire pour le récupérer. Je suppose que vous pourriez remplacer les NaN par quelque chose d'autre, mais ce n'est pas un principe.

Vous voulez probablement voir s'il existe un point de contrôle précédent sans valeurs NaN. tf.train.Saver maintient jusqu'à 5 points de contrôle précédents par défaut, précisément pour ce genre de raison:

https://www.tensorflow.org/api_docs/python/tf/train/Saver

Hope this helps!