【问题标题】: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() 的输出吗?默认情况下,它只是将其打印在标准输出上。如果是这样,这可能会有所帮助:stackoverflow.com/questions/41665799/… 在字符串或文件中捕获它后,您可以在破折号应用程序或任何地方显示它,但为了进一步帮助,您需要告诉我们更多您正在尝试做的事情.
  • 谢谢@piterbarg!是的,我正在尝试在 Dash 上捕获model.summary() 的输出。我使用了该问题中的一些代码,这些代码有助于将其转换为字符串。但是现在我的输出出现了问题,破折号上的间距很奇怪,就像汇总表的第 2 行从第 1 行开始,随后的行也出现同样的问题
  • 如何获取dict格式的输出:stackoverflow.com/a/68128858/10375049

标签: python keras dashboard plotly-dash


【解决方案1】:

Dash 将输出呈现为 html,因此您需要特别注意换行符。尝试用以下内容替换您的 app.layout

app.layout = html.Div(html.P(
    children=str_sum, style={'whiteSpace': 'pre-wrap'}))

为我工作:

【讨论】:

  • 谢谢@piterbarg!是的,它现在看起来干净多了
  • 完成!抱歉,对 Stackoverflow 还是很陌生
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 2022-11-11
  • 2012-08-27
  • 2022-08-08
  • 2021-09-28
  • 1970-01-01
相关资源
最近更新 更多