2017-08-30 4 views
1

Es gibt eine Möglichkeit, eine Datei mit Python zu erstellen, die von TensorBoard visualisiert werden kann (siehe here). Ich habe es mit diesem Code versucht und es funktioniert gut.In TensorFlow C++ api, wie man eine Diagrammdatei zur Visualisierung mit Tensorboard erzeugt?

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() 

Jetzt verwende ich TensorFlow API, um meine Berechnungen zu erstellen. Wie kann ich meine Berechnungen mit TensorBoard visualisieren?

Es gibt eine FileWrite Schnittstelle in C++ api auch, aber ich habe kein Beispiel gesehen. Ist es die gleiche Schnittstelle?

Antwort

-1

Sieht aus wie Sie wollen tensorflow::EventsWriter von tensorflow/core/util/events_writer.h. Sie müssen jedoch manuell ein Event-Objekt erstellen, um es zu verwenden.

Der Python-Code in tf.summary.FileWriter behandelt eine Menge der Details für Sie, ich würde vorschlagen, nur die C++ API zu verwenden, wenn absolut notwendig ... Gibt es einen zwingenden Grund, Ihr Training in C++ zu implementieren?

0

Siehe meine answer here, die Ihnen eine 26-Liner in C++ gibt, dies zu tun:

#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; 
} 
Verwandte Themen