如何在Python中抑制Keras日志

时间:2018-08-20 23:45:09

标签: python logging keras stdout

我正在编写一个运行Tensorflow模型进行分类的Python应用程序。为简单起见,使用了库Keras。这是我的日志记录配置:

logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
handler = RotatingFileHandler(LOG_DIR + '/' + LOG_FILE_NAME, maxBytes=LOG_FILE_MAX_BYTES,backupCount=LOG_FILE_BACKUP_COUNT)
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger = logging.getLogger('')
logger.addHandler(handler)
logging.getLogger('boto').setLevel(logging.WARNING)
logging.getLogger('keras').setLevel(logging.CRITICAL)
logging.getLogger('botocore').setLevel(logging.CRITICAL)

尽管我将keras的日志记录级别设置为critical,但它仍然在开始时向STDOUT输出了某种警告:

UserWarning: Update your `InputLayer` call to the Keras 2 API: `InputLayer(batch_input_shape=[None, 64,..., sparse=False, name="input_1", dtype="float32")`
  return cls(**config)
UserWarning: Update your `Conv2D` call to the Keras 2 API: `Conv2D(trainable=True, name="convolution2d_1", activity_regularizer=None, activation="relu", kernel_size=(3, 3), filters=64, strides=[1, 1], padding="same", data_format="channels_last", kernel_initializer="glorot_uniform", kernel_regularizer=None, bias_regularizer=None, kernel_constraint=None, bias_constraint=None, use_bias=True)`
  return cls(**config)
UserWarning: Update your `MaxPooling2D` call to the Keras 2 API: `MaxPooling2D(strides=[2, 2], trainable=True, name="maxpooling2d_1", pool_size=[2, 2], padding="valid", data_format="channels_last")`
  return cls(**config)

为什么此输出未记录到日志文件?我是否需要为keras模块创建处理程序,并指定与应用程序其余部分相同的日志文件? CRITICAL高于Warning。为什么仍会输出某种类型的警告?

1 个答案:

答案 0 :(得分:1)

您可以使用以下两种方法之一简单地关闭所有 $.ajax({ type: 'POST', url: 'www.test.com/admin_control/transfer_tool/', data: 'toPost='+toPost+'&form_data='+jQuery.param(form_data), cache: false, dataType:"json", }); 警告:

python

或使用

python -W ignore script.py

根据this条帖子。您可以在官方import warnings warnings.filterwarnings("ignore") documentation中找到有关第二种方法的更多信息。

第三种方法是使用上述模块并使用`catch_warnings上下文管理器

python