我将 Keras 和 Tensorflow 用于神经网络,但是 Tensorflow 正在将我的主记录器的日志记录加倍,它使用 StreamHandler,并且它的警告不能完全禁用。
我尝试从导入的一开始就手动禁用消息和日志记录,它确实禁用了Using Tensorflow backendKeras ( ) 和 Tensorflow 正在发送的大量消息,但是发生了加倍问题。
这是我目前正在使用的。
import os
import logging
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '4'
logging.getLogger('tensorflow').disabled = True
import sys
stderr = sys.stderr
sys.stderr = open(os.devnull, 'w')
import keras
sys.stderr = stderr
from keras.layers import Activation, Dense, Dropout
from keras.models import Sequential, load_model
from keras.optimizers import SGD
from keras.backend.tensorflow_backend import tf
logger = tf.get_logger()
logger.disabled = True
logger.setLevel(logging.FATAL)
Run Code Online (Sandbox Code Playgroud)
该代码仍然丑陋而庞大,即使它是临时的,替换 sys.stderr 个人也非常不专业。最糟糕的是,我的问题只修复了一部分,我的控制台仍然输出:
WARNING: Logging before flag parsing goes to stderr. …Run Code Online (Sandbox Code Playgroud)