Tam olarak python modelleri C++' da kullanılmak üzere nasıl dışa aktarılmalıdır?İhracat Python'dan Tensorflow grafikleri C++ 'da kullanım için
ben bu yazının benzer bir şey yapmaya çalışıyorum: Ben kuruluşundan biri yerine C++ API kendi TF modeli içe çalışıyorum https://www.tensorflow.org/versions/r0.8/tutorials/image_recognition/index.html
. Giriş boyutunu ve yolları değiştirdim, ancak garip hatalar ortaya çıkıyor. Bütün gün yığın taşması ve diğer forumları okudum ama boşuna harcadım.
Grafiği dışa aktarmak için iki yöntem denedim.
Yöntem 1: metagrafi.
...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)
Yöntem 1 programı çalıştırmak için çalışırken aşağıdaki hata verir:
Yöntem 2: write_graph:
tf.train.write_graph(sess.graph_def,
'/home/sander/tensorflow/tensorflow/examples/cat_face/data/',
'cat_graph.pb', as_text=False)
Ayrıca grafik dışa yönelik başka bir metodu güvenilir
[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'
Bu sürüm aslında bir şeyler yüklemek gibi görünüyor, ancak değişkenler hakkında bir hata alıyorum başlatıldı: İlk başta
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)]]
var. Bu Değişkenler kullanmak ve geri yükleme operasyonları çalıştırmak zorunda kalmadan kaçının - https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py –
Ah, bunu gördüm. Ama ben argümanlarını nasıl dolduracağımı öğrenmek için uğraşıyorum, tıpkı export_meta_graph'daki her argümana neyin gireceğini bilmiyorum gibi. Bunun için bazı örnek kodları biliyor musunuz? – Sander
Burada bir örnek var: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph_test.py –