Poprzez debugowanie informacji mam na myśli to, co TensorFlow pokazuje w moim terminalu na temat załadowanych bibliotek i znalezionych urządzeń itp., A nie błędów w Pythonie.
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
...
python
tensorflow
Ghilas BELHADJ
źródło
źródło
import warnings
następniewarnings.filterwarnings('ignore')
, a następnie uruchom import tensorflow i kod oparty na zepsutym kodzie alfa-tensorflow, a następnie włącz ponownie ostrzeżenia za pośrednictwemwarnings.resetwarnings()
. W tej chwili Tensorflow nie powinien reklamować nazwy wersji powyżej 0,05.Odpowiedzi:
Możesz wyłączyć wszystkie dzienniki debugowania, używając
os.environ
:Testowane na tf 0.12 i 1.0
W szczegółach,
źródło
Aktualizacja 2.0 (10/8/19) Ustawienie
TF_CPP_MIN_LOG_LEVEL
powinno nadal działać (patrz poniżej w aktualizacji v0.12 +), ale obecnie jest otwarty problem (patrz problem # 31870 ). Jeśli ustawienieTF_CPP_MIN_LOG_LEVEL
nie działa dla Ciebie (ponownie, patrz poniżej), spróbuj wykonać następujące czynności, aby ustawić poziom dziennika:Ponadto zapoznaj się z dokumentacją, w
tf.autograph.set_verbosity
której ustala się szczegółowość komunikatów dziennika autografów - na przykład:Aktualizacja v0.12 + (5/20/17), Praca za pośrednictwem TF 2.0+:
W TensorFlow 0.12+, w zależności od tego problemu , możesz teraz kontrolować rejestrowanie za pomocą zmiennej środowiskowej o nazwie
TF_CPP_MIN_LOG_LEVEL
; domyślnie wynosi 0 (pokazane wszystkie dzienniki), ale można ustawić jedną z następujących wartości wLevel
kolumnie.Zobacz następujący ogólny przykład systemu operacyjnego przy użyciu Pythona:
Aby być dokładnym, wywołujesz również ustawienie poziomu dla
tf_logging
modułu Python , który jest używany np. W ops podsumowaniu, tablicy wyników, różnych estymatorach itp.W przypadku wersji 1.14 otrzymasz ostrzeżenia, jeśli nie zmienisz sposobu używania interfejsu API v1 w następujący sposób:
Wcześniejsze wersje rejestrowania TensorFlow lub TF-Learn (v0.11.x lub nowsza):
Zobacz poniższą stronę, aby uzyskać informacje na temat rejestrowania w TensorFlow; z nową aktualizacją, jesteś w stanie ustawić szczegółowość zapisów w dzienniku albo
DEBUG
,INFO
,WARN
,ERROR
, lubFATAL
. Na przykład:Strona dodatkowo omawia monitory, których można używać z modelami TF-Learn. Oto strona .
To nie blokować wszystkie rejestrowanie, chociaż (tylko TF-Learn). Mam dwa rozwiązania; jedno jest rozwiązaniem „technicznie poprawnym” (Linux), a drugie wymaga przebudowania TensorFlow.
Po drugie, zapoznaj się z odpowiedzią, która obejmuje modyfikację źródła i przebudowanie TensorFlow.
źródło
export TF_CPP_MIN_LOG_LEVEL="3" && python your_code.py
TF_CPP_MIN_LOG_LEVEL="3" python your_code.py
Miałem również ten problem (włączony
tensorflow-0.10.0rc0
), ale nie mogłem rozwiązać problemu nadmiernego rejestrowania testów nosa za pomocą sugerowanych odpowiedzi.Udało mi się to rozwiązać, sondując bezpośrednio w rejestratorze przepływu tensorflow. Nie jest to najbardziej poprawna poprawka, ale działa świetnie i zanieczyszcza tylko pliki testowe, które bezpośrednio lub pośrednio importują tensorflow:
źródło
tensorflow-gpu 1.14.0
. Odebrano ten wynik, gdyThe name tf.logging.set_verbosity is deprecated. Please use tf.compat.v1.logging.set_verbosity instead.
WARNING:tensorflow:From C:/.../NN.py:297: The name tf.logging.ERROR is deprecated. Please use tf.compat.v1.logging.ERROR instead.
Aby zapewnić zgodność z Tensorflow 2.0 , możesz użyć
tf.get_logger
źródło
Jak
TF_CPP_MIN_LOG_LEVEL
dla mnie nie zadziałało, możesz spróbować:Pracował dla mnie w tensorflow v1.6.0
źródło
Zwykły menedżer dziennika Python3 działa dla mnie z tensorflow == 1.11.0:
źródło
Rozwiązałem ten post Nie można usunąć wszystkich ostrzeżeń # 27045 , a rozwiązaniem było:
źródło
Aby dodać tutaj pewnej elastyczności, możesz uzyskać bardziej szczegółową kontrolę nad poziomem rejestrowania, pisząc funkcję, która filtruje wiadomości w dowolny sposób:
gdzie
my_filter_func
akceptujeLogRecord
obiekt jako dane wejściowe [LogRecord
dokumenty ] i zwraca zero, jeśli chcesz, aby wiadomość została wyrzucona; niezerowe inaczej.Oto przykładowy filtr, który zachowuje tylko każdy n-ty komunikat informacyjny (Python 3 z powodu użycia
nonlocal
tutaj):Wszystkie powyższe założyły, że TensorFlow ustawił już swój stan rejestrowania. Możesz to zapewnić bez skutków ubocznych, dzwoniąc
tf.logging.get_verbosity()
przed dodaniem filtra.źródło
Tak, używam TF 2.0-beta i chcę włączyć / wyłączyć rejestrowanie domyślne. Wydaje się, że zmienna środowiskowa i metody w tf1.X już nie istnieją.
Odszedłem w PDB i stwierdziłem, że to działa:
Następnie dodaję własny interfejs API rejestratora (w tym przypadku oparty na plikach)
źródło
w przypadku tensorflow 2.1.0 następujący kod działa poprawnie.
źródło
Jeśli chcesz tylko pozbyć się wyjść ostrzegawczych na ekranie , możesz wyczyścić ekran konsoli zaraz po zaimportowaniu przepływu tensor przy użyciu tego prostego polecenia (Jest to bardziej skuteczne niż wyłączenie wszystkich dzienników debugowania z mojego doświadczenia):
W systemie Windows:
W systemie Linux lub Mac:
źródło
Żadne z powyższych rozwiązań nie rozwiązało mojego problemu w Jupyter Notebook, dlatego używam poniższego kodu fragmentu z Cicoria i rozwiązano problemy.
źródło