停止TensorFlow向控制台输出打印信息。

6

我一直在使用 tensorflow 没有问题,直到添加了以下代码:

log_dir = os.path.join("logs",
                       "fit",
                       datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))

tensorboard_callback = TensorBoard(log_dir)

运行后,我在控制台上看到了大量的信息。我查看了 tf.keras.callbacks.TensorBoard文档,尝试减少冗长输出,但未找到选项。

我参考了一些stackoverflow答案,也尝试将tf的详细程度降低,但无济于事:

tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
tf.get_logger().setLevel('ERROR')
tf.autograph.set_verbosity(3)
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

我有以下规格要求:

Python = 3.8
Tensorflow = 2.3.1
Cuda Toolkit = 10.1 
cuDNN = 7.6.4
GPU=Nvidia RTX2060

输出到控制台的信息都是 I 消息,如果这些信息包含任何重要细节,我已将其粘贴在下面。
2020-10-19 20:59:45.205887: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
2020-10-19 20:59:47.463539: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library nvcuda.dll
2020-10-19 20:59:48.540417: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2060 computeCapability: 7.5
coreClock: 1.2GHz coreCount: 30 deviceMemorySize: 6.00GiB deviceMemoryBandwidth: 312.97GiB/s
2020-10-19 20:59:48.542360: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
2020-10-19 20:59:48.562444: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll
2020-10-19 20:59:48.569770: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cufft64_10.dll
2020-10-19 20:59:48.572530: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library curand64_10.dll
2020-10-19 20:59:48.581126: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusolver64_10.dll
2020-10-19 20:59:48.586315: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusparse64_10.dll
2020-10-19 20:59:48.604682: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll
2020-10-19 20:59:48.605112: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0
2020-10-19 21:00:02.120333: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-10-19 21:00:02.128143: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x255e4b0b0a0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-10-19 21:00:02.128792: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-10-19 21:00:03.014080: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2060 computeCapability: 7.5
coreClock: 1.2GHz coreCount: 30 deviceMemorySize: 6.00GiB deviceMemoryBandwidth: 312.97GiB/s
2020-10-19 21:00:03.014776: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
2020-10-19 21:00:03.015127: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll
2020-10-19 21:00:03.015477: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cufft64_10.dll
2020-10-19 21:00:03.015822: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library curand64_10.dll
2020-10-19 21:00:03.016172: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusolver64_10.dll
2020-10-19 21:00:03.016565: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusparse64_10.dll
2020-10-19 21:00:03.016911: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll
2020-10-19 21:00:03.017288: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0
2020-10-19 21:00:03.722569: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-10-19 21:00:03.722942: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263]      0 
2020-10-19 21:00:03.723166: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 0:   N 
2020-10-19 21:00:03.723522: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 4594 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2060, pci bus id: 0000:01:00.0, compute capability: 7.5)
2020-10-19 21:00:03.726833: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x255883632b0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2020-10-19 21:00:03.727297: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce RTX 2060, Compute Capability 7.5
2020-10-19 21:00:08.908192: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session started.
2020-10-19 21:00:08.908485: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1391] Profiler found 1 GPUs
2020-10-19 21:00:08.910553: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cupti64_101.dll
2020-10-19 21:00:09.007043: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1513] CUPTI activity buffer flushed
2020-10-19 21:06:09.402869: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session started.
2020-10-19 21:06:09.403307: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1513] CUPTI activity buffer flushed

有人能帮我停止这些消息打印到控制台吗?它让分析控制台上的其他信息变得非常困难!

谢谢!

1个回答

8

你可以使用 os.environ 来禁用调试日志。

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

可能的取值如下:

0 = all messages are logged (default behavior)
1 = INFO messages are not printed
2 = INFO and WARNING messages are not printed
3 = INFO, WARNING, and ERROR messages are not printed

2
感谢 Stanley。对于还在努力让这个工作起来的人,像我一样,请确保在导入 tensorflow 之前已经设置了 os.environ。 - Matt_Haythornthwaite

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接