web-dev-qa-db-fra.com

Comment rediriger la journalisation TensorFlow vers un fichier?

J'utilise TensorFlow-Slim, qui contient une journalisation utile imprimée sur la console par tf.logging. Je voudrais rediriger ces enregistrements vers un fichier texte, mais je n'ai pas trouvé le moyen de le faire. J'ai regardé le code source tf_logging.py, qui expose les éléments suivants, mais ne semble pas avoir la possibilité d'écrire des journaux dans un fichier. S'il vous plaît laissez-moi savoir si j'ai manqué quelque chose.

__all__ = ['log', 'debug', 'error', 'fatal', 'info', 'warn', 'warning',
           'DEBUG', 'ERROR', 'FATAL', 'INFO', 'WARN',
           'flush', 'log_every_n', 'log_first_n', 'vlog',
           'TaskLevelStatusMessage', 'get_verbosity', 'set_verbosity']
18
Ying Xiong
import logging

# get TF logger
log = logging.getLogger('tensorflow')
log.setLevel(logging.DEBUG)

# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# create file handler which logs even debug messages
fh = logging.FileHandler('tensorflow.log')
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
log.addHandler(fh)

Ma solution est inspirée par ce fil .

22
matlibplotter

Vous avez raison, il n'y a pas de boutons pour cela.

Si vous ne pouvez vraiment pas vivre avec, tf.logging est basé sur la journalisation Python. Donc, import logging tf.logging._logger.basicConfig(filename='tensorflow.log', level=logging.DEBUG)

Notez que vous êtes seul sur un chemin non pris en charge et que ce problème peut survenir à tout moment.

Vous pouvez également déposer une demande de fonctionnalité à notre problème github page.

4
drpng

Si vous utilisez la journalisation Python dans votre projet, l’une des options consiste à définir le consignateur nommé "tensorflow" dans un fichier de configuration.

Ensuite, _logger = _logging.getLogger('tensorflow') utilisera le consignateur et les gestionnaires spécifiés de votre fichier de configuration.

0
lehinevych