在TensorFlow的C ++ api中,如何使用tensorboard生成图形文件以进行可视化?

时间:2017-08-30 03:59:57

标签: api tensorflow tensorboard

有一种方法可以使用Python创建一个文件,可以通过TensorBoard进行可视化(参见here)。我已尝试使用此代码,但效果很好。

import tensorflow as tf

a = tf.add(1, 2,)
b = tf.multiply(a, 3)
c = tf.add(4, 5,)
d = tf.multiply(c, 6,)
e = tf.multiply(4, 5,)
f = tf.div(c, 6,)
g = tf.add(b, d)
h = tf.multiply(g, f)

with tf.Session() as sess:
    print(sess.run(h))
with tf.Session() as sess:
    writer = tf.summary.FileWriter("output", sess.graph)
    print(sess.run(h))
    writer.close()

现在我使用TensorFlow API来创建我的计算。 如何使用TensorBoard可视化我的计算?

C ++ api中也有FileWrite接口,但我没有看到任何示例。它是相同的界面吗?

2 个答案:

答案 0 :(得分:0)

请参阅我的answer here,它为您提供了26行的c ++语言:

#include <tensorflow/core/util/events_writer.h>
#include <string>
#include <iostream>


void write_scalar(tensorflow::EventsWriter* writer, double wall_time, tensorflow::int64 step,
                  const std::string& tag, float simple_value) {
  tensorflow::Event event;
  event.set_wall_time(wall_time);
  event.set_step(step);
  tensorflow::Summary::Value* summ_val = event.mutable_summary()->add_value();
  summ_val->set_tag(tag);
  summ_val->set_simple_value(simple_value);
  writer->WriteEvent(event);
}


int main(int argc, char const *argv[]) {

  std::string envent_file = "./events";
  tensorflow::EventsWriter writer(envent_file);
  for (int i = 0; i < 150; ++i)
    write_scalar(&writer, i * 20, i, "loss", 150.f / i);

  return 0;
}

答案 1 :(得分:-1)

您希望来自tensorflow::EventsWriter的{​​{1}}。您需要手动创建一个Event对象才能使用它。

tf.summary.FileWriter中的python代码为你处理了很多细节,我建议如果绝对必要的话只使用C ++ API ...是否有令人信服的理由在C ++中实现你的训练?