Tensorboard: Как просмотреть сводку модели? - PullRequest
1 голос
/ 31 октября 2019

Постановка задачи

  • Запустить модель с несколькими конфигурациями и сравнить графики. На основе анализа графика выберите конфигурацию.

В приведенном выше утверждении я могу построить несколько прогонов модели с их именами. Теперь мне нужно, чтобы Tensorboard отображал конфигурацию / сводку модели для каждого прогона.

Вопрос Можно ли просматривать сводку модели в Tensorboard для соответствующего каждого прогонамодель?

This is how tensorboard looks like

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете использовать text сводку со сводкой модели, что-то вроде этого:

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не удается, когда я пытаюсь показать это, что я считаю ошибкой. Тем не менее, TensorBoard 1.15 показывает это очень хорошо (написано с любой версии). Результат будет выглядеть примерно так:

TensorBoard result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...