在仪表板上显示模型摘要
Posted
技术标签:
【中文标题】在仪表板上显示模型摘要【英文标题】:Displaying model summary on dash 【发布时间】:2021-03-17 17:03:29 【问题描述】:我有一个训练有素的 Keras 模型并将其存储在变量“模型”中。
当我打印model.summary()
时,我会得到一个带有列标题的表格
Layer (type) Output Shape Param# Connected to
如何以破折号显示此表格?我需要先把它变成某种数据框吗?或者我可以调用仪表板上打印的摘要和输出吗?
我设法使用此代码将其转换为字符串。我的代码:
strlist = []
model.summary(print_fn=lambda x: strlist.append(x))
str_sum = "\n".join(strlist)
app = dash.Dash()
app.layout = html.Div(children=[
html.Div(str_sum)
])
if __name__ == '__main__':
app.run_server()
但是我在仪表板上看到的内容看起来完全脱节,而且顺序不正确 它看起来像:
Model: "model"_________________________________Layer (type) Output Shape Param #
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
input_1 (InputLayer) [None, 256, 256, 3) 0 __________________________________
block1_conv1 (Conv2D) (None, 127, 127, 32) 864 input_1[0][0]
感谢您的意见!
【问题讨论】:
您的问题是在字符串中捕获model.summary()
的输出吗?默认情况下,它只是将其打印在标准输出上。如果是这样,这可能会有所帮助:***.com/questions/41665799/… 在字符串或文件中捕获它后,您可以在破折号应用程序或任何地方显示它,但为了进一步帮助,您需要告诉我们更多您正在尝试做的事情.
谢谢@piterbarg!是的,我正在尝试在 Dash 上捕获model.summary()
的输出。我使用了该问题中的一些代码,这些代码有助于将其转换为字符串。但是现在我的输出出现了问题,破折号上的间距很奇怪,就像汇总表的第 2 行从第 1 行开始,随后的行也出现同样的问题
如何获取dict格式的输出:***.com/a/68128858/10375049
【参考方案1】:
Dash 将输出呈现为 html,因此您需要特别注意换行符。尝试用以下内容替换您的 app.layout
行
app.layout = html.Div(html.P(
children=str_sum, style='whiteSpace': 'pre-wrap'))
为我工作:
【讨论】:
谢谢@piterbarg!是的,它现在看起来干净多了 完成!抱歉,对 *** 还是很陌生以上是关于在仪表板上显示模型摘要的主要内容,如果未能解决你的问题,请参考以下文章