Сохранить график Tensorflow для просмотра в Tensorboard без сводных операций

У меня довольно сложный график Tensorflow, который я бы хотел визуализировать для целей оптимизации. Есть ли функция, которую я могу назвать, которая просто сохранит график для просмотра в Tensorboard без необходимости комментировать переменные?

Я пробовал это:

merged = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("/Users/Name/Desktop/tf_logs", session.graph_def)

Но выход не был произведен. Это использует колесо 0.6.

Это, как представляется, связано: Графический визуализатор не отображается в тензоре для модели seq2seq

Ответ 1

Для эффективности tf.train.SummaryWriter записывается асинхронно на диск. Чтобы гарантировать, что граф появится в журнале, вы должны вызвать close() или flush() для записи до выхода программы.

Ответ 2

Вы также можете вывести график в виде прототипа GraphDef и загрузить его непосредственно в TensorBoard. Вы можете сделать это без запуска сеанса или запуска модели.

## ... create graph ...
>>> graph_def = tf.get_default_graph().as_graph_def()
>>> graphpb_txt = str(graph_def)
>>> with open('graphpb.txt', 'w') as f: f.write(graphpb_txt)

Это выведет файл, который будет выглядеть примерно так, в зависимости от особенностей вашей модели.

node {
  name: "W"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
...
version 1

В TensorBoard вы можете использовать кнопку "Загрузить", чтобы загрузить его с диска.

Ответ 3

Это сработало для меня:

graph = tf.Graph()
with graph.as_default():
    ... build graph (without annotations) ...
writer = tf.summary.FileWriter(logdir='logdir', graph=graph)
writer.flush()

График загружается автоматически при запуске тензорной панели с помощью "--logdir = logdir/". Не требуется кнопка "загрузить".

Ответ 4

Для всей ясности я использовал метод .flush() и решил проблему:

Инициализируйте автора следующим образом:

writer = tf.train.SummaryWriter("/home/rob/Dropbox/ConvNets/tf/log_tb", sess.graph_def)

и используйте запись с помощью:

writer.add_summary(summary_str, i)
    writer.flush()

Ответ 5

У меня ничего не получалось, кроме этого

# Helper for Converting Frozen graph from Disk to TF serving compatible Model
def get_graph_def_from_file(graph_filepath):
  tf.reset_default_graph()
  with ops.Graph().as_default():
    with tf.gfile.GFile(graph_filepath, 'rb') as f:
      graph_def = tf.GraphDef()
      graph_def.ParseFromString(f.read())
      return graph_def

#let us get the output nodes from the graph
graph_def =get_graph_def_from_file('/coding/ssd_inception_v2_coco_2018_01_28/frozen_inference_graph.pb')

with tf.Session(graph=tf.Graph()) as session:
    tf.import_graph_def(graph_def, name='')
    writer = tf.summary.FileWriter(logdir='/coding/log_tb/1', graph=session.graph)
    writer.flush()

Тогда с помощью туберкулеза сработало

#ssh -L 6006:127.0.0.1:6006 [email protected]<remoteip> # for tensor board - in your local machine type 127.0.0.1
!tensorboard --logdir '/coding/log_tb/1'