2016-11-12 12 views
8

Tôi đang sử dụng TensorFlow-Slim, có một số ghi nhật ký hữu ích được in ra để điều khiển theo số tf.logging. Tôi muốn chuyển hướng những logging đó vào một file văn bản, nhưng không thể tìm ra cách làm như vậy. Tôi đã xem mã nguồn tf_logging.py, mã này cho thấy những điều sau đây, nhưng dường như không có tùy chọn ghi nhật ký vào một tệp. Xin vui lòng cho tôi biết nếu tôi bị mất một cái gì đó.Làm cách nào để chuyển hướng ghi nhật ký TensorFlow sang tệp?

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

Trả lời

2

Bạn nói đúng, không có nút bấm nào để bạn làm điều đó.

Nếu bạn thực sự, tích cực, tuyệt đối không thể sống với điều đó, tf.logging được dựa trên khai thác python. Vì vậy, import logging tf.logging._logger.basicConfig(filename='tensorflow.log', level=logging.DEBUG)

Lưu ý rằng bạn đang ở trên con đường không được hỗ trợ và hành vi đó có thể xảy ra bất cứ lúc nào.

Bạn cũng có thể gửi yêu cầu tính năng tại trang github issue của chúng tôi.

+0

@ matlibplotter's answer hoạt động. – empty

0

Nếu bạn đang sử dụng đăng nhập python trong dự án của mình, một trong các tùy chọn sẽ là xác định trình ghi nhật ký có tên "tensorflow" trong tệp cấu hình ghi nhật ký.

Sau đó, _logger = _logging.getLogger('tensorflow') sẽ sử dụng trình ghi nhật ký và trình xử lý được chỉ định từ tệp cấu hình của bạn.

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) 

Giải pháp của tôi được lấy cảm hứng từ this thread.

Các vấn đề liên quan