Итак, я играл с Google Tensorflow, которую они опубликовали вчера, и столкнулся с раздражающей ошибкой, которая меня кусает.
Что я сделал, так это настроить функции ведения журнала на python, как я обычно делаю, и результатом было то, что если я импортирую библиотеку tensorflow, все сообщения в консоли начнут удваиваться. Интересно, что это не происходит, если вы просто используете функцию logging.warn/info/..()
.
Пример кода, который не удваивает сообщения:
import tensorflow as tf
import logging
logging.warn('test')
Пример кода, который удваивает все сообщения:
import tensorflow as tf
import logging
logger = logging.getLogger('TEST')
ch = logging.StreamHandler()
logger.addHandler(ch)
logger.warn('test')
Теперь я простой человек. Мне нравится функциональность logging
, поэтому я использую ее. Настройка с объектом logger
и добавлением StreamHandler
- это то, что я поднял, глядя на то, как это делают другие люди, но похоже, что это соответствует тому, как должна была использоваться эта вещь. Тем не менее, у меня нет глубоких знаний о библиотеке протоколирования, так как это всегда просто сработало.
Таким образом, любая помощь, объясняющая, почему происходит удвоение сообщений, будет наиболее полезной.
Я использую Ubuntu 14.04.3 LTS с Python 2.7.6, но ошибка возникает во всех версиях Python 2.7, которые я пробовал.