我想记录一些加载到经过训练的 keras 模型中的 python 代码。由于某种原因,(python)日志记录在 keras 不工作的情况下不起作用load_model
是进口的。但是,如果我不导入 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 日志记录?
这个问题是因为版本的bug0.7.0
包装的abseil
并且它已被修复在其0.8.0
版本,如本文中提到的Github链接 https://github.com/abseil/abseil-py/issues/99#issuecomment-525390675.
解决这个问题的方法是升级包的版本abseil
至大于或等于0.8。
示例代码
- 创建一个新的日志文件并
- 每当调用日志记录时写入该文件
如下图所示:
`
!pip install --upgrade absl-py
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...
do_stuff()
`
希望这可以帮助。快乐学习!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)