Python Tensorboard:如何查看模型摘要?

Python Tensorboard:如何查看模型摘要?,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,问题陈述 运行具有多个配置的模型并比较图表。根据绘图分析,选择一种配置 在上面的语句中,我能够用它们的名称绘制模型的多个运行。现在我需要Tensorboard来显示每个运行的模型的配置/摘要 问题是 是否可以在张力板中查看与模型每次运行对应的模型摘要 您可以将摘要与模型摘要一起使用,如下所示: import tensorflow as tf # Get model summary as a string def get_summary_str(model): lines = []

问题陈述

  • 运行具有多个配置的模型并比较图表。根据绘图分析,选择一种配置
在上面的语句中,我能够用它们的名称绘制模型的多个运行。现在我需要Tensorboard来显示每个运行的模型的配置/摘要

问题是 是否可以在张力板中查看与模型每次运行对应的模型摘要

您可以将摘要与模型摘要一起使用,如下所示:

import tensorflow as tf

# Get model summary as a string
def get_summary_str(model):
    lines = []
    model.summary(print_fn=lines.append)
    # Add initial spaces to avoid markdown formatting in TensorBoard
    return '    ' + '\n    '.join(lines)

# Write a string to TensorBoard (1.x)
def write_string_summary_v1(writer, s):
    with tf.Graph().as_default(), tf.Session() as sess:
        summary = tf.summary.text('Model configuration', tf.constant(s))
        writer.add_summary(sess.run(summary))

# Write a string to TensorBoard (2.x)
def write_string_summary_v2(writer, s):
    with writer.as_default():
        tf.summary.text('Model configuration', s, step=0)

# Model 1
inp1 = tf.keras.Input(shape=(10,))
out1 = tf.keras.layers.Dense(100)(inp1)
model1 = tf.keras.Model(inputs=inp1, outputs=out1)
# Model 2
inp2 = tf.keras.Input(shape=(10,))
out2 = tf.keras.layers.Dense(200)(inp2)
out2 = tf.keras.layers.Dense(100)(out2)
model2 = tf.keras.Model(inputs=inp2, outputs=out2)
# Write model summaries to TensorBoard (1.x)
with tf.summary.FileWriter('log/model1') as writer1:
    write_string_summary_v1(writer1, get_summary_str(model1))
with tf.summary.FileWriter('log/model2') as writer2:
    write_string_summary_v1(writer2, get_summary_str(model2))
# Write model summaries to TensorBoard (2.x)
writer1 = tf.summary.create_file_writer('log/model1')
write_string_summary_v2(writer1, get_summary_str(model1))
writer2 = tf.summary.create_file_writer('log/model2')
write_string_summary_v2(writer2, get_summary_str(model2))
出于某种原因,在2.0中编写摘要效果很好,但当我试图展示它时,2.0 TensorBoard失败了,我认为这是一个bug。然而,TensorBoard 1.15显示的很好(从任一版本编写)。结果如下所示:

import tensorflow as tf

# Get model summary as a string
def get_summary_str(model):
    lines = []
    model.summary(print_fn=lines.append)
    # Add initial spaces to avoid markdown formatting in TensorBoard
    return '    ' + '\n    '.join(lines)

# Write a string to TensorBoard (1.x)
def write_string_summary_v1(writer, s):
    with tf.Graph().as_default(), tf.Session() as sess:
        summary = tf.summary.text('Model configuration', tf.constant(s))
        writer.add_summary(sess.run(summary))

# Write a string to TensorBoard (2.x)
def write_string_summary_v2(writer, s):
    with writer.as_default():
        tf.summary.text('Model configuration', s, step=0)

# Model 1
inp1 = tf.keras.Input(shape=(10,))
out1 = tf.keras.layers.Dense(100)(inp1)
model1 = tf.keras.Model(inputs=inp1, outputs=out1)
# Model 2
inp2 = tf.keras.Input(shape=(10,))
out2 = tf.keras.layers.Dense(200)(inp2)
out2 = tf.keras.layers.Dense(100)(out2)
model2 = tf.keras.Model(inputs=inp2, outputs=out2)
# Write model summaries to TensorBoard (1.x)
with tf.summary.FileWriter('log/model1') as writer1:
    write_string_summary_v1(writer1, get_summary_str(model1))
with tf.summary.FileWriter('log/model2') as writer2:
    write_string_summary_v1(writer2, get_summary_str(model2))
# Write model summaries to TensorBoard (2.x)
writer1 = tf.summary.create_file_writer('log/model1')
write_string_summary_v2(writer1, get_summary_str(model1))
writer2 = tf.summary.create_file_writer('log/model2')
write_string_summary_v2(writer2, get_summary_str(model2))