Keras干扰python日志记录

2024-04-26 21:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想记录一些python代码,加载到经过训练的keras模型中。出于某种原因,如果导入kerasload_model,则(python)日志记录不起作用。但是,如果我不导入keras,(python)日志记录就可以正常工作。你知道吗

这样做有效:

import logging

LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
logging.basicConfig(filename="logs/my_logs.log",
                    level=logging.DEBUG,
                    format=LOG_FORMAT)
logger = logging.getLogger()

def do_stuff():
    logging.info("About to do stuff")
    ... stuff gets done here...

这不管用

import logging
from keras.models import load_model

my_model = load_model("fetch_preprocess/lstm_model.h5")

LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
logging.basicConfig(filename="logs/my_logs.log",
                    level=logging.DEBUG,
                    format=LOG_FORMAT)
logger = logging.getLogger()

def do_stuff():
    logging.info("About to do stuff")
    pred = my_model.predict(data)
    ... stuff gets done here...

所谓“不工作”,我的意思是logging模块不工作

  • 创建新的日志文件
  • 在调用logging时写入该文件

但不会抛出错误。所以我觉得很奇怪。你知道吗

我相信Keras/tensorflow会干扰日志记录(因为我对代码所做的唯一更改是排除Keras,然后日志记录就可以正常工作了)。你知道吗

有没有什么方法可以抑制keras在后台所做的事情,这样我就可以使用python日志了?你知道吗


Tags: 代码importlogformatmessagemodelmylogging
1条回答
网友
1楼 · 发布于 2024-04-26 21:23:54

正如您所提到的,我还认为Keras只是用自己的记录器替换了您的记录器。但是,您可以执行以下操作:

import logging as my_logging
from keras.models import load_model

my_model = load_model("fetch_preprocess/lstm_model.h5")

LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
my_logging.basicConfig(filename="logs/my_logs.log",
                    level=my_logging.DEBUG,
                    format=LOG_FORMAT)
my_logger = my_logging.getLogger()

相关问题 更多 >