Под отладочной информацией я имею в виду то, что TensorFlow показывает в моем терминале о загруженных библиотеках и найденных устройствах и т. Д., А не об ошибках Python.
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
Гилас БЕЛХАДЖ
источник
источник
import warnings
тоwarnings.filterwarnings('ignore')
, а затем запускать импорт tensorflow и и код , который зависит от разбитого кода альфа-tensorflow, затем включите предупреждения обратно на помощьwarnings.resetwarnings()
. На данный момент Tensorflow не должен рекламировать название версии более 0,05.Ответы:
Вы можете отключить все журналы отладки, используя
os.environ
:Проверено на TF 0,12 и 1,0
Подробно,
источник
Обновление 2.0 (10/8/19) Настройка
TF_CPP_MIN_LOG_LEVEL
должна работать (см. Ниже в v0.12 + обновление), но в настоящее время существует открытая проблема (см. Проблема # 31870 ). Если настройкаTF_CPP_MIN_LOG_LEVEL
не работает для вас (опять же, смотрите ниже), попробуйте сделать следующее, чтобы установить уровень журнала:Кроме того, см. Документацию, в
tf.autograph.set_verbosity
которой задается подробность сообщений журнала автографов - например:v0.12 + обновление (20.05.17), работа через TF 2.0+:
В TensorFlow 0.12+ для этой проблемы теперь вы можете контролировать ведение журнала через переменную среды, которая называется
TF_CPP_MIN_LOG_LEVEL
; по умолчанию это 0 (все журналы показаны), но может быть установлено одно из следующих значений вLevel
столбце.Смотрите следующий общий пример ОС с использованием Python:
Чтобы быть точным, вы также можете установить уровень для
tf_logging
модуля Python , который используется, например, в сводных операциях, тензорной доске, различных оценках и т. Д.Для версии 1.14 вы будете получать предупреждения, если не перейдете на использование API v1 следующим образом:
Для предыдущих версий TensorFlow или TF-Learn Logging (v0.11.x или ниже):
Посмотрите страницу ниже для получения информации о ведении журнала TensorFlow; с новым обновлением, вы можете установить протоколирование многословие либо
DEBUG
,INFO
,WARN
,ERROR
, илиFATAL
. Например:На странице дополнительно отображаются мониторы, которые можно использовать с моделями TF-Learn. Вот эта страница .
Это не блокирует всю регистрацию, хотя (только TF-Learn). У меня есть два решения; одно - «технически правильное» решение (Linux), а другое - перестройка TensorFlow.
Для другого, пожалуйста, посмотрите этот ответ, который включает изменение исходного кода и перестройку TensorFlow.
источник
export TF_CPP_MIN_LOG_LEVEL="3" && python your_code.py
TF_CPP_MIN_LOG_LEVEL="3" python your_code.py
У меня также была эта проблема (вкл.
tensorflow-0.10.0rc0
), Но я не мог решить проблему регистрации чрезмерных тестов на нос через предложенные ответы.Мне удалось решить это, исследуя непосредственно в регистраторе tenorflow. Не самое правильное из исправлений, но прекрасно работает и загрязняет только тестовые файлы, которые прямо или косвенно импортируют tenorflow:
источник
tensorflow-gpu 1.14.0
. Получил этот вывод при вызове функции выше.The 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.
Приятно, что после этих сообщений не было никаких предупрежденийДля совместимости с Tensorflow 2.0 вы можете использовать
tf.get_logger
источник
Поскольку
TF_CPP_MIN_LOG_LEVEL
у меня не получилось, вы можете попробовать:У меня работало в tenorflow v1.6.0
источник
Обычный менеджер журналов python3 у меня работает с tenorflow == 1.11.0:
источник
Я решил с этим постом Не могу удалить все предупреждения # 27045 , и решение было:
источник
Чтобы добавить некоторую гибкость, вы можете добиться более детального контроля над уровнем ведения журнала, написав функцию, которая отфильтровывает сообщения так, как вам нравится:
где
my_filter_func
принимаетLogRecord
объект как input [LogRecord
docs ] и возвращает ноль, если вы хотите, чтобы сообщение было выброшено; ненулевое в противном случае.Вот пример фильтра, который хранит только каждое n-е информационное сообщение (Python 3 из-за использования
nonlocal
здесь):Все вышеперечисленное предполагает, что TensorFlow уже настроил свое состояние регистрации. Вы можете убедиться в этом без побочных эффектов, позвонив
tf.logging.get_verbosity()
перед добавлением фильтра.источник
Да, я использую tf 2.0-beta и хочу включить / отключить ведение журнала по умолчанию. Переменная окружения и методы в tf1.X, похоже, больше не существуют.
Я обошел PDB и нашел, что это работает:
Затем я добавляю свой собственный API логгера (в данном случае на основе файлов)
источник
для тензорного потока 2.1.0 следующий код работает нормально.
источник
Если вам нужно только избавиться от выводов предупреждений на экране , вы можете очистить экран консоли сразу после импорта тензорного потока с помощью этой простой команды (это более эффективно, чем отключение всех журналов отладки в моем опыте):
В окнах:
В Linux или Mac:
источник
Ни одно из приведенных выше решений не может решить мою проблему в Jupyter Notebook, поэтому я использую приведенный ниже фрагмент кода из Cicoria , и проблемы решены.
источник