2016-06-28 26 views
8

Ich teste meinen Tensorflow-Code mit nosetests, aber es produziert so viel verbose Ausgabe, dass es nutzlos ist.Wie wird die ausführliche Tensorflow-Protokollierung unterdrückt?

Der folgende Test

import unittest 
import tensorflow as tf 

class MyTest(unittest.TestCase): 

    def test_creation(self): 
     self.assertEquals(True, False) 

, wenn sie mit nosetests laufen schafft eine riesige Menge von nutzloser Protokollierung:

FAIL: test_creation (tests.test_tf.MyTest) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/home/cebrian/GIT/thesis-nilm/code/deepmodels/tests/test_tf.py", line 10, in test_creation 
    self.assertEquals(True, False) 
AssertionError: True != False 
-------------------- >> begin captured logging << -------------------- 
tensorflow: Level 1: Registering Const (<function _ConstantShape at 0x7f4379131c80>) in shape functions. 
tensorflow: Level 1: Registering Assert (<function no_outputs at 0x7f43791319b0>) in shape functions. 
tensorflow: Level 1: Registering Print (<function _PrintGrad at 0x7f4378effd70>) in gradient. 
tensorflow: Level 1: Registering Print (<function unchanged_shape at 0x7f4379131320>) in shape functions. 
tensorflow: Level 1: Registering HistogramAccumulatorSummary (None) in gradient. 
tensorflow: Level 1: Registering HistogramSummary (None) in gradient. 
tensorflow: Level 1: Registering ImageSummary (None) in gradient. 
tensorflow: Level 1: Registering AudioSummary (None) in gradient. 
tensorflow: Level 1: Registering MergeSummary (None) in gradient. 
tensorflow: Level 1: Registering ScalarSummary (None) in gradient. 
tensorflow: Level 1: Registering ScalarSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering MergeSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering AudioSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering ImageSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering HistogramSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering HistogramAccumulatorSummary (<function _ScalarShape at 0x7f4378f042a8>) in shape functions. 
tensorflow: Level 1: Registering Pack (<function _PackShape at 0x7f4378f047d0>) in shape functions. 
tensorflow: Level 1: Registering Unpack (<function _UnpackShape at 0x7f4378f048c0>) in shape functions. 
tensorflow: Level 1: Registering Concat (<function _ConcatShape at 0x7f4378f04938>) in shape functions. 
tensorflow: Level 1: Registering ConcatOffset (<function _ConcatOffsetShape at 0x7f4378f049b0>) in shape functions. 

...... 

während tensorflow von der ipython Konsole scheint nicht, dass die ausführlichen:

Wie konnte ich die vorherige Protokollierung beim Ausführen unterdrücken Nosetests?

+0

Mögliche Duplikat [Deaktivieren Tensorflow Debug-Informationen] (http://stackoverflow.com/questions/35911252/disable-tensorflow-debugging-information) – craymichael

+0

Eine andere Lösung: https: //stackoverflow.com/questions/43337601/nosetests-with-tensorflow-lots-of-debugging-output-how-to-disable – vpekar

Antwort

0

Hier ist an example dies zu tun. Leider müssen dazu die Quelle und der Wiederaufbau geändert werden. Hier ist ein tracking bug zu erleichtern

18

1.0 Update (5/20/17):

In TensorFlow 1,0 pro diesen issue, haben Sie jetzt die Protokollierung über die Umgebungsvariable TF_CPP_MIN_LOG_LEVEL steuern genannt; Es ist standardmäßig 0 (alle Protokolle angezeigt), aber kann auf 1 gesetzt werden, um INFO Protokolle auszufiltern, 2, um zusätzlich WARNING Protokolle auszufiltern, und 3, um Protokolle zusätzlich herauszufiltern. Siehe das folgende allgemeine O Beispiel unter Verwendung von Python:

import os 
import tensorflow as tf 

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 

für frühere Versionen von TensorFlow oder TF-Lernen-Protokollierung finden Sie im folgenden:

Zeigen Sie die Seite für weitere Informationen über TensorFlow Protokollierung; Mit dem neuen Update können Sie den Protokollierungsumfang auf DEBUG, INFO, WARN, oder FATAL festlegen. Zum Beispiel:

Die Seite geht zusätzlich über Monitore, die mit TF-Learn-Modellen verwendet werden können. Here is the page.

Diese blockiert nicht alle Protokollierung, obwohl (nur TF-Learn). Ich habe zwei Lösungen; Eines ist eine "technisch korrekte" Lösung (Linux) und das andere beinhaltet den Wiederaufbau von TensorFlow.

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

Für die anderen finden Sie this answer die Quelle TensorFlow und Wiederaufbau Modifizierung beinhaltet.