Tensorflow-Diagramme aus Python für die Verwendung in C ++ exportieren

Wie genau sollten Python-Modelle zur Verwendung in c ++ exportiert werden?

Ich versuche, etwas Ähnliches wie dieses Tutorial zu machen:https: //www.tensorflow.org/versions/r0.8/tutorials/image_recognition/index.htm

Ich versuche, anstelle des ersten mein eigenes TF-Modell in die c ++ API zu importieren. Ich habe die Eingabegröße und die Pfade angepasst, aber es tauchen immer wieder seltsame Fehler auf. Ich habe den ganzen Tag Stapelüberlauf und andere Foren gelesen, aber ohne Erfolg.

Ich habe zwei Methoden zum Exportieren des Diagramms ausprobiert.

Methode 1: metagraph.

...loading inputs, setting up the model, etc....

sess = tf.InteractiveSession()
sess.run(tf.initialize_all_variables())


for i in range(num_steps):  
  x_batch, y_batch = batch(50)  
  if i%10 == 0:
        train_accuracy = accuracy.eval(feed_dict={
        x:x_batch, y_: y_batch, keep_prob: 1.0})
        print("step %d, training accuracy %g"%(i, train_accuracy))
  train_step.run(feed_dict={x: x_batch, y_: y_batch, keep_prob: 0.5})

print("test accuracy %g"%accuracy.eval(feed_dict={
    x: features_test, y_: labels_test, keep_prob: 1.0}))

saver = tf.train.Saver(tf.all_variables())
checkpoint = 
   '/home/sander/tensorflow/tensorflow/examples/cat_face/data/model.ckpt'
    saver.save(sess, checkpoint)

   tf.train.export_meta_graph(filename=
   '/home/sander/tensorflow/tensorflow/examples/cat_face/data/cat_graph.pb',  
    meta_info_def=None,
    graph_def=sess.graph_def,
    saver_def=saver.restore(sess, checkpoint),
    collection_list=None, as_text=False)

Methode 1 gibt den folgenden Fehler aus, wenn versucht wird, das Programm auszuführen:

[libprotobuf ERROR 
google/protobuf/src/google/protobuf/wire_format_lite.cc:532] String field 
'tensorflow.NodeDef.op' contains invalid UTF-8 data when parsing a protocol 
buffer. Use the 'bytes' type if you intend to send raw bytes. 
E tensorflow/examples/cat_face/main.cc:281] Not found: Failed to load 
compute graph at 'tensorflow/examples/cat_face/data/cat_graph.pb'

Ich habe auch eine andere Methode zum Exportieren des Diagramms ausprobiert:

Methode 2: write_graph:

tf.train.write_graph(sess.graph_def, 
'/home/sander/tensorflow/tensorflow/examples/cat_face/data/', 
'cat_graph.pb', as_text=False)

Diese Version scheint tatsächlich etwas zu laden, aber ich erhalte eine Fehlermeldung, wenn Variablen nicht initialisiert werden:

Running model failed: Failed precondition: Attempting to use uninitialized  
value weight1
[[Node: weight1/read = Identity[T=DT_FLOAT, _class=["loc:@weight1"], 
_device="/job:localhost/replica:0/task:0/cpu:0"](weight1)]]

Antworten auf die Frage(4)

Ihre Antwort auf die Frage