2017-01-28 7 views
4

tf.import_graph_defを使用してインポートしているGraphDefプロトファイルがあります。オプスは、このようなグラフの最後に追加することができます。TensorFlowグラフの先頭にOpを追加する方法は?

final_tensor = tf.import_graph_def(graph_def, name='', return_elements=['final_tensor']) 
new_tensor = some_op(final_tensor) 

しかし、私は、グラフの先頭にオプスを追加したいので、基本的にgraph_defの最初のオペアンプのように私のオペアンプの出力を取る必要があります入力、どうすればいいですか?

+0

graph.gdefの既存の入力テンソルを新しい入力テンソル、すなわち 'reroute_a2b_ts'(https://www.tensorflow.org/versions/r1.0/api_docs/python/contrib)に置き換えるためにcontrib.graph_editorを使用することができます。 graph_editor/module_reroute –

+0

@ YaroslavBulatovありがとうございました。しかし、私はいくつかの入力に(tf.map_fn)をマップするために使用される関数の中で、グラフ上にpropを進めたいと思います。私はgraph_editorを、各関数の実行中にgraph_defを編集せずにpythonグラフにインポートすることなく使用する方法を考えることはできません。これを行う他の方法はありますか? – Priyatham

+0

'some_op(final_tensor)'と同じ時間/コードの複雑さが必要です。 IEの場合、前に何かを追加する必要があるたびにロジックをラップし、 'replace_input(previous_input_tensor)'を呼び出す –

答えて

2

最後にこれを行う方法が見つかりました。私は、コメントに記載されているYarolsavの機能が内部的に何か類似していると確信しています。

new_input = graph_def.node.add() 
new_input.op = 'new_op_name' # eg: 'Const', 'Placeholder', 'Add' etc 
new_input.name = 'some_new_name' 
# set any attributes you want for new_input here 
old_input.input[0] = 'some_new_name' # must match with the name above 

属性の設定方法の詳細については、thisファイルを参照してください。

関連する問題