2016-11-12 5 views
8

मैं टेंसरफ्लो-स्लिम का उपयोग कर रहा हूं, जिसमें tf.logging द्वारा कंसोल के लिए मुद्रित कुछ उपयोगी लॉगिंग हैं। मैं उन लॉगिंग को एक टेक्स्ट फ़ाइल में रीडायरेक्ट करना चाहता हूं, लेकिन ऐसा करने का कोई तरीका नहीं मिला। मैंने tf_logging.py स्रोत कोड देखा, जो निम्न का खुलासा करता है, लेकिन ऐसा लगता है कि फ़ाइल में लॉग लिखने का विकल्प नहीं है। अगर मुझे कुछ याद आया तो कृपया मुझे बताएं।फ़ाइल में टेंसरफ्लो लॉगिंग को रीडायरेक्ट कैसे करें?

__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'] 

उत्तर

2

आप सही हैं, ऐसा करने के लिए आपके लिए कोई knobs नहीं हैं।

यदि आप वास्तव में, सकारात्मक रूप से, बिल्कुल इसके साथ नहीं रह सकते हैं, tf.logging पायथन लॉगिंग पर आधारित है। तो, import logging tf.logging._logger.basicConfig(filename='tensorflow.log', level=logging.DEBUG)

ध्यान दें कि आप असमर्थित पथ पर स्वयं हैं, और यह व्यवहार किसी भी समय टूट सकता है।

आप हमारे github issue पृष्ठ पर एक सुविधा अनुरोध भी दर्ज कर सकते हैं।

+0

@ matlibplotter का उत्तर काम करता है। – empty

0

यदि आप अपनी परियोजना में पायथन लॉगिंग का उपयोग कर रहे हैं, तो विकल्प में से एक लॉगिंग कॉन्फ़िगरेशन फ़ाइल में "tensorflow" नाम के साथ लॉगर को परिभाषित करना होगा।

फिर _logger = _logging.getLogger('tensorflow') आपके कॉन्फ़िगरेशन फ़ाइल से लॉगर और निर्दिष्ट हैंडलर का उपयोग करेगा।

8
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) 

मेरा समाधान this thread से प्रेरित है।

संबंधित मुद्दे

 संबंधित मुद्दे