在仪表板上显示模型摘要

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!是的,它现在看起来干净多了 完成!抱歉,对 *** 还是很陌生

以上是关于在仪表板上显示模型摘要的主要内容,如果未能解决你的问题,请参考以下文章

分支 IO 在快速链接仪表板中生成链接显示

仪表板的 Rails 控制器设计模式

Django:在一个视图中有超过 3 个模型时出错

Log4Net 的仪表板 [关闭]

删除python3.4后,在ubuntu 14.04中没有显示仪表板/终端/侧边栏

rails 5 如何将模型值传递给仪表板?