So spielte ich mit Google Tensorflow Bibliothek sie gestern veröffentlicht und stieß auf einen nervigen Bug, der mich beißt.Tensorflow verursacht Logging Nachrichten zu verdoppeln
Was ich getan habe, war die Python Logging-Funktionen wie ich normalerweise tun, und das Ergebnis war, dass, wenn ich die Tensorflow-Bibliothek zu importieren, alle Nachrichten in der Konsole zu verdoppeln begann. Interessanterweise geschieht dies nicht passieren, wenn Sie nur die logging.warn/info/..()
Funktion verwenden.
Ein Beispiel für einen Code, der nicht doppelte Meldungen tut:
import tensorflow as tf
import logging
logging.warn('test')
Ein Beispiel für einen Code, dass tut Doppel alle Nachrichten:
import tensorflow as tf
import logging
logger = logging.getLogger('TEST')
ch = logging.StreamHandler()
logger.addHandler(ch)
logger.warn('test')
Nun, ich bin ein einfacher Mann. Ich mag die Funktionalität von logging
, also benutze ich es. Das Setup mit dem logger
Objekt und dem Hinzufügen eines StreamHandler
ist etwas, was ich mir angeschaut habe, wie andere Leute das gemacht haben, aber es sieht so aus, als ob es damit paßt, wie das Ding benutzt werden sollte. Ich habe jedoch keine gründliche Kenntnis der Logging-Bibliothek, da es immer irgendwie funktioniert hat.
Also, jede Hilfe zu erklären, warum die Verdoppelung der Nachrichten auftritt, wird am hilfreichsten sein.
Ich benutze Ubuntu 14.04.3 LTS mit Python 2.7.6, aber der Fehler passiert in allen Python 2.7-Versionen, die ich ausprobiert habe.
Ich habe eine harte Zeit, diese auf Ubuntu 14.04 auch mit Python 2.7.6 replizieren: Python testlog.py ACHTUNG: root: Test tf Können Sie etwas genauer darüber, wie Sie installiert? – dga
Ah! In Ihrem Beispielcode ist ein Tippfehler enthalten. Die letzte Zeile sollte logger.warn ('test') statt logging.warn sein. Jetzt habe ich es repliziert. Und die Antwort ist ein bisschen klarer - Moment mal. – dga