如何阻止 Keras 显示"using XXX backend"?



"使用XXX后端"将在导入keras时打印。

import keras

输出:

Using TensorFlow backend.

但我清楚地知道我在用什么。

如何禁用它?

只需使用下面的代码。

import os
import sys
stderr = sys.stderr
sys.stderr = open(os.devnull, 'w')
import keras
sys.stderr = stderr

解决此问题的方法:

stderr = sys.stderr
sys.stderr = open(os.devnull, 'w')
import keras
sys.stderr = stderr

你可以在这里找到更多关于keras问题的信息

如果使用Tensorflow 2.0,则可能会出现一个错误,称为AttributeError: module 'tf' has no attribute 'logging'

不幸的是,tf.logging已从tensorflow 2.0中删除。请执行以下命令:

import logging logger = tf.get_logger() logger.setLevel(logging.ERROR)

您有两个选项:这里的第一个注释是keras/backend/__init__.py字符串print('Using TensorFlow backend.'),但当然不建议使用此选项,因为您将在keras模块中编辑代码。第二种选择是:

import sys
stdout = sys.stdout
sys.stdout = open('/dev/null', 'w')
import keras
sys.stdout = stdout

它不优雅,但很管用。

此处的第一个注释"keras/backend/init.py"字符串打印("使用TensorFlow backend."(将工作!!。。但这并不是一个永久的解决方案。

隐藏keras打印的另一种方法"使用Tensorflow后端";

此处建议https://github.com/keras-team/keras/issues/1406

import ...
import os
from contextlib import redirect_stderr
with redirect_stderr(open(os.devnull, "w")):
import keras
import ...
import ... 

在代码中包含这一行。它将忽略该错误。

tf.logging.set_verbosity(tf.logging.ERROR)

相关内容

最新更新