"使用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)