2016-04-27 16 views
33

Tensorflowskflowで神経網を作成しています。何らかの理由で、与えられた入力に対していくつかの内部テンソルの値を取得したいので、私はmyClassifier.get_layer_value(input, "tensorName")myClassifierskflow.estimators.TensorFlowEstimatorとしています。Tensorflowでは、グラフ内のすべてのテンソルの名前を取得します。

しかし、私はテンソル名の正しい構文を見つけることは難しく、その名前を知っていても(と私は操作とテンソルの間で混乱しています)、テンソルボードを使ってグラフをプロットし、名前。

テンソルボードを使用せずにすべてのテンソルをグラフに列挙する方法はありますか?

答えて

74

あなたはIPythonのノートブックに試作されている場合も、あなたはnotebook

+0

たとえば、次のようにフィルタリングできます。理解の終わりに '' n.opに '' if '変数を追加することによって変数を更新します。 – Radu

5

tf.all_variables()アレキサンダーのディープ夢でshow_graph関数を参照してください、ノートブックで直接グラフを表示することができます

[n.name for n in tf.get_default_graph().as_graph_def().node] 

を行うことができますを取得することができますあなたが望む情報

また、TensorFlowで今日作成されたthis commitは、すべての変数名を簡単に取得するために使用できるエスカレータの関数get_variable_namesを提供しています。

+0

この関数は非推奨の – CAFEBABE

+3

...で、その後継は 'tf.global_variables()' – bluenote10

+6

です。これはテンソルではなく変数のみを取り出します。 –

10

get_operationsを使用して、ヤロスラフの回答よりも少し速く行う方法があります。ここでは簡単な例です:

import tensorflow as tf 
a = tf.constant(1.3, name='const_A') 
b = tf.Variable(3.1, name='b') 
c = tf.add(a, b, name='addition') 
d = tf.multiply(c, a, name='multiply') 

for op in tf.get_default_graph().get_operations(): 
    print str(op.name) 
+0

最後の行のprint(str(op.name))は正しいと思います。 – Cristi

1

私は、これはあまりにも行いますと思う:

print(tf.contrib.graph_editor.get_tensors(tf.get_default_graph())) 

しかしSalvadoとヤロスラフの答えと比較して、私が優れている1かわかりません。