私はテンソルフローが非常に新しく、推測のためにC++環境で事前トレーニングされたモデル(Python)を使用したいと考えています。私が理解しているように、このためには、 "freeze_graph"ツールを使用して訓練されたモデルをフリーズする必要があります。ここでモデルフリーズ中のエラー(フリーズグラフ)
コードです、それは非常に単純なMNISTモデルのためにどのように見えるかスニペット:
File "mnist.py", line 180, in main output_graph = "frozen_graph.pb", clear_devices = True, initializer_nodes = "")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/tools/freeze_graph.py", line 184, in freeze_graph variable_names_blacklist)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/tools/freeze_graph.py", line 87, in freeze_graph_with_def_protos _ = importer.import_graph_def(input_graph_def, name="")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 313, in import_graph_def op_def=op_def) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2633, in create_op self._add_op(ret)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2312, in _add_op "is already used" % op.name) ValueError: cannot add op with name conv1/Variable/Adam as that name is already used
誰もが任意のアイデアを持っています。それを私は次のエラーを取得しています。この方法をやって
with tf.Session(config=config) as s:
s.run(tf.global_variables_initializer())
for i in range(n):
batch = mnist.train.next_batch(50)
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
print('test accuracy %g' % accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))
saver.save(s, 'models/saved_checkpoint')
with tf.Session(config=config) as s:
# save the graph definition
tf.train.write_graph(s.graph_def, 'models', "graph_def.pbtxt")
freeze_graph.freeze_graph(input_graph = "models/graph_def.pbtxt", input_saver = "", input_binary = False, input_checkpoint = "models/saved_checkpoint", output_node_names = "output_node", restore_op_name = "save/restore_all", filename_tensor_name = "save/Const:0", output_graph = "frozen_graph.pb", clear_devices = True, initializer_nodes = "")
ここで何が間違っているのでしょうか?私はtensorflow 1.3とpython 2.7を使用しています。残念ながら、私はグラフフリーズに関する多くの情報を見つけることができませんし、利用可能な例は私のために動作しません...
アドバイスを事前に感謝!
ベスト、 アレクセイ