如何将 model.summary() 保存到 Keras 中的文件?

问题描述 投票:0回答:3

Keras 中有 model.summary() 方法。它将表打印到标准输出。可以将其保存到文件吗?

python keras stdout
3个回答
63
投票

如果您想要摘要的格式,您可以将

print
函数传递给
model.summary()
并以这种方式输出到文件:

def myprint(s):
    with open('modelsummary.txt','a') as f:
        print(s, file=f)

model.summary(print_fn=myprint)

或者,您可以使用

model.to_json()
model.to_yaml()
将其序列化为 json 或 yaml 字符串,稍后可以将其导入回来。

编辑

在 Python 3.4+ 中执行此操作的一种更 Pythonic 的方法是使用

contextlib.redirect_stdout

from contextlib import redirect_stdout

with open('modelsummary.txt', 'w') as f:
    with redirect_stdout(f):
        model.summary()

15
投票

这里您还有另一种选择:

with open('modelsummary.txt', 'w') as f:

    model.summary(print_fn=lambda x: f.write(x + '\n'))

0
投票

这似乎更简洁和Pythonic:

with open('model.summary', 'w') as sys.stdout:
  model.summary()

# ...reset 'sys.stdout' for later script output
sys.stdout = sys.__stdout__
© www.soinside.com 2019 - 2024. All rights reserved.