通过调试信息,我指的是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
...

当前回答

是的,我正在使用tf 2.0 beta,并想启用/禁用默认日志记录。tf1中的环境变量和方法。X似乎不再存在了。

我在PDB中发现了这个方法:

# close the TF2 logger
tf2logger = tf.get_logger()
tf2logger.error('Close TF2 logger handlers')
tf2logger.root.removeHandler(tf2logger.root.handlers[0])

然后添加自己的日志记录器API(在本例中是基于文件的)

logtf = logging.getLogger('DST')
logtf.setLevel(logging.DEBUG)

# file handler
logfile='/tmp/tf_s.log'
fh = logging.FileHandler(logfile)
fh.setFormatter( logging.Formatter('fh %(asctime)s %(name)s %(filename)s:%(lineno)d :%(message)s') )
logtf.addHandler(fh)
logtf.info('writing to %s', logfile)

其他回答

我使用的是Tensorflow 2.3.1版本,上面的解决方案都没有完全有效。 直到我找到这个包裹。

像这样安装:

水蟒,

python -m pip install silence-tensorflow

ide,

pip install silence-tensorflow

并在第一行代码中添加:

from silence_tensorflow import silence_tensorflow
silence_tensorflow()

就是这样!

大多数答案在这里工作,但你必须使用他们每次你打开一个新的会话(例如与JupyterLab)。要使更改生效,必须设置环境变量。

Linux:

export TF_CPP_MIN_LOG_LEVEL="3"

(也可以将上面的行添加到.bashrc中,使更改永久,而不仅仅是针对会话)

窗口:

setx TF_CPP_MIN_LOG_LEVEL "3"

两者都为用户设置环境变量。

因为TF_CPP_MIN_LOG_LEVEL对我没用,你可以试试:

tf.logging.set_verbosity(tf.logging.WARN)

在tensorflow v1.6.0中为我工作过

我用这篇文章解决了无法删除所有警告#27045,解决方案是:

import logging
logging.getLogger('tensorflow').disabled = True

对于tensorflow 2.1.0,以下代码运行正常。

import tensorflow as tf
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)