Keras 中有 model.summary() 方法。它将表打印到标准输出。可以将其保存到文件吗?
如果您想要摘要的格式,您可以将
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()
这里您还有另一种选择:
with open('modelsummary.txt', 'w') as f:
model.summary(print_fn=lambda x: f.write(x + '\n'))
这似乎更简洁和Pythonic:
with open('model.summary', 'w') as sys.stdout:
model.summary()
# ...reset 'sys.stdout' for later script output
sys.stdout = sys.__stdout__