में उपयोग के लिए पायथन से निर्यात टेंसफोर्लो ग्राफ निर्यात करें सटीक रूप से सी ++ में उपयोग के लिए पाइथन मॉडल को कैसे निर्यात किया जाना चाहिए?सी ++
मैं इस ट्यूटोरियल के लिए इसी तरह कुछ करने के लिए कोशिश कर रहा हूँ: https://www.tensorflow.org/versions/r0.8/tutorials/image_recognition/index.html
मैं स्थापना के समय से एक की जगह में C++ एपीआई में अपने ही TF मॉडल आयात करने के लिए कोशिश कर रहा हूँ। मैंने इनपुट आकार और पथ समायोजित किए, लेकिन अजीब त्रुटियां पॉप-अप रहती रहती हैं। मैंने पूरे दिन स्टैक ओवरफ्लो और अन्य मंचों को पढ़ा लेकिन कोई फायदा नहीं हुआ।
मैंने ग्राफ को निर्यात करने के लिए दो विधियों का प्रयास किया है।
विधि 1: अनुच्छेद।
...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)
विधि 1 निम्न त्रुटि जब कार्यक्रम चलाने के लिए कोशिश कर रहा है पैदावार:
[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'
मैं भी एक और तरीका कोशिश की ग्राफ निर्यात के:
विधि 2: write_graph:
tf.train.write_graph(sess.graph_def,
'/home/sander/tensorflow/tensorflow/examples/cat_face/data/',
'cat_graph.pb', as_text=False)
यह संस्करण वास्तव में कुछ लोड करने लगता है, लेकिन मुझे चर के बारे में कोई त्रुटि नहीं मिली प्रारंभ:
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)]]
नहीं है। इससे वेरिएबल का उपयोग करने और ओपन को पुनर्स्थापित करने से बचा जाता है - https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py –
आह, मैंने इसे देखा है। लेकिन मैं अपने तर्कों को भरने का तरीका जानने के लिए संघर्ष करता हूं, जैसे कि मुझे नहीं पता कि export_meta_graph में प्रत्येक तर्क के लिए क्या भरना है। क्या आप इसके लिए कुछ उदाहरण कोड जानते हैं? – Sander
यहां एक उदाहरण दिया गया है: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph_test.py –