Ответ 1
Для эффективности tf.train.SummaryWriter
записывается асинхронно на диск. Чтобы гарантировать, что граф появится в журнале, вы должны вызвать close()
или flush()
для записи до выхода программы.
У меня довольно сложный график Tensorflow, который я бы хотел визуализировать для целей оптимизации. Есть ли функция, которую я могу назвать, которая просто сохранит график для просмотра в Tensorboard без необходимости комментировать переменные?
Я пробовал это:
merged = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("/Users/Name/Desktop/tf_logs", session.graph_def)
Но выход не был произведен. Это использует колесо 0.6.
Это, как представляется, связано: Графический визуализатор не отображается в тензоре для модели seq2seq
Для эффективности tf.train.SummaryWriter
записывается асинхронно на диск. Чтобы гарантировать, что граф появится в журнале, вы должны вызвать close()
или flush()
для записи до выхода программы.
Вы также можете вывести график в виде прототипа 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 вы можете использовать кнопку "Загрузить", чтобы загрузить его с диска.
Это сработало для меня:
graph = tf.Graph()
with graph.as_default():
... build graph (without annotations) ...
writer = tf.summary.FileWriter(logdir='logdir', graph=graph)
writer.flush()
График загружается автоматически при запуске тензорной панели с помощью "--logdir = logdir/". Не требуется кнопка "загрузить".
Для всей ясности я использовал метод .flush()
и решил проблему:
Инициализируйте автора следующим образом:
writer = tf.train.SummaryWriter("/home/rob/Dropbox/ConvNets/tf/log_tb", sess.graph_def)
и используйте запись с помощью:
writer.add_summary(summary_str, i)
writer.flush()
У меня ничего не получалось, кроме этого
# 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'