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

时间:2017-07-19 19:03:32

标签: python keras stdout

Keras有model.summary() method。它将表打印到stdout。是否可以将其保存到文件中?

2 个答案:

答案 0 :(得分:17)

如果您想要格式化摘要,可以将print函数传递给model.summary()并以这种方式输出到文件:

def myprint(s):
    with open('modelsummary.txt','w+') 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()

答案 1 :(得分:4)

这里还有一个选择:

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

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