2016-03-10 30 views
51

जानकारी डीबग करने से मेरा मतलब है कि मेरे टर्मिनल में लोड किए गए पुस्तकालयों और पाए गए डिवाइस इत्यादि के बारे में टेंसरफ्लो दिखाता है कि पायथन त्रुटियां नहीं हैं।Tensorflow डीबगिंग जानकारी अक्षम करें

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally 
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally 
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties: 
name: Graphics Device 
major: 5 minor: 2 memoryClockRate (GHz) 1.0885 
pciBusID 0000:04:00.0 
Total memory: 12.00GiB 
Free memory: 11.83GiB 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:717] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Graphics Device, pci bus id: 0000:04:00.0) 
I tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:51] Creating bin of max chunk size 1.0KiB 
... 
+3

ट्रैकिंग समस्या: https://github.com/tensorflow/tensorflow/issues/1258 –

उत्तर

36

1,0 अद्यतन (5/20/17):

TensorFlow 0.12+ में, इस issue प्रति, अब आप पर्यावरण चर TF_CPP_MIN_LOG_LEVEL कहा जाता है के माध्यम से प्रवेश नियंत्रित कर सकते हैं; यह 0 (सभी लॉग दिखाए गए) को डिफ़ॉल्ट करता है, लेकिन INFO लॉग आउट करने के लिए 1 पर सेट किया जा सकता है, 2 WARNING लॉग आउट करने के लिए 2 और ERROR लॉग को अतिरिक्त रूप से फ़िल्टर करने के लिए 3 सेट किया जा सकता है। अजगर का उपयोग कर निम्नलिखित सामान्य OS उदाहरण देखें:

import os 
import tensorflow as tf 

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # or any {'0', '1', '2'} 

TensorFlow के पूर्व संस्करण या के लिए TF-जानें लॉगिंग, निम्न देखें:

देखें TensorFlow लॉगिंग जानकारी के लिए नीचे पेज; नए अपडेट के साथ, आप DEBUG, INFO, WARN, ERROR, या FATAL पर लॉगिंग वर्बोसिटी सेट करने में सक्षम हैं। उदाहरण के लिए:

tf.logging.set_verbosity(tf.logging.ERROR) 

पृष्ठ अतिरिक्त रूप से मॉनीटर पर चला जाता है जिसका उपयोग टीएफ-जानें मॉडल के साथ किया जा सकता है। Here is the page

यह सभी लॉगिंग ब्लॉक नहीं करता है, हालांकि (केवल टीएफ-जानें)। मेरे पास दो समाधान हैं; एक 'तकनीकी रूप से सही' समाधान (लिनक्स) है और दूसरे में टेंसरफ्लो का पुनर्निर्माण शामिल है।

script -c 'python [FILENAME].py' | grep -v 'I tensorflow/' 

अन्य के लिए, कृपया this answer जो स्रोत को संशोधित करने और TensorFlow पुनर्निर्माण शामिल है देखते हैं।

4

मुझे यह समस्या भी मिली है (tensorflow-0.10.0rc0 पर), लेकिन सुझाए गए उत्तरों के माध्यम से अत्यधिक नाक परीक्षण लॉगिंग समस्या को ठीक नहीं कर सका।

मैं सीधे tensorflow लॉगर में जांच करके इसे हल करने में कामयाब रहा। नहीं सबसे सुधारों की सही, लेकिन अच्छा काम करता है और केवल परीक्षण फ़ाइलें जो प्रत्यक्ष या परोक्ष रूप tensorflow आयात को प्रदूषित करता है:

# Place this before directly or indirectly importing tensorflow 
import logging 
logging.getLogger("tensorflow").setLevel(logging.WARNING) 
+0

यह टीएफ 0.11 – Davidmh

+0

के लिए काम नहीं करता है, जबकि TF_CPP_MIN_LOG_LEVEL समाधान नहीं हुआ था। अच्छी सोच! –

66

आप os.environ का उपयोग करके सभी डिबगिंग लॉग अक्षम कर सकते हैं:

import os 
import tensorflow as tf 
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 

tf 0.12 पर परीक्षण किया गया और 1.0

+1

यह मेरे लिए हल हो गया। मैं टीएफ 1.0 का उपयोग कर रहा हूँ। –

+0

मेरे लिए काम नहीं करता है। टीएफ 1.0 – thang

+1

टीएफ 1.2.0 –