2017-01-03 6 views
6

にポートを追加する必要がない理由私は名前でテンソルを取得するとき、私は出力インデックスget_tensor_by_nameはテンソル名

元を追加しなければならないことを知っている)

graph.get_tensor_by_name('example:0') 

:0が出力指標であります。しかし、なぜこれが必要ですか?

hereは、tensorflowのドキュメントのget_tensor_by_nameへのリンクです。ただし、出力インデックスの指定については言及していません。 TensorFlowで

+2

http://stackoverflow.com/questions/37849322/how-to-understand-the-term-tensor-in-tensorflow/37870634#37870634 –

+1

具体例としては、tf.nn.top_k(tf.ones (1))、name = "top_k") 'は、その関数の2つの出力を表す' 'top_k:0''と' 'top_k:1''を作成します –

答えて

8

、名前は(tf.Graph内のノードに対応する)tf.Operationオブジェクトに与えられ、そしてtf.Tensorオブジェクトが出力として生成tf.Operationにちなんで命名されています。

tf.Operationは、複数の出力を持つことができるため、tf.Tensorという名前を一意に指定するため、名前に出力のインデックスを含めます。 get_tensor_by_name機能を理解するための最も重要な点は、TensorFlowことを実現することである

<name of operation>:<index of output> 
+0

この関数を理解できませんでした! :(私はどこでも見つけることができませんでした。それが何をしているのか、そしてこの関数の使い方を明確に説明してください!! – Sridharan

+0

@Sridharanこの関数についての質問があるなら、 'tf.Graph.get_tensor_by_name () '?)、それからあなたは新しい質問としてそれを尋ねることをお勧めしますあなたのコメントから、あなたが理解できなかったものは不明です – mrry

+0

私が理解できなかったことは、関数?" – Sridharan

0

したがって、我々はまた、tf.Tensor.nameプロパティによって返される値ですtf.Tensorオブジェクトの名前は次の形式を選択しましたモデルは最初にの建設段階の間にグラフとして指定されます。質問では、exampleはこのグラフの操作ノードの名前です。 実行フェーズ中にこの操作を実行すると、このexampleノードによって出力が生成されます。この出力は、製造指図を示す番号で指し示されます。この場合、それは1です。

上記のグラフとその出力は、以前の実行中に保存されました。後で別のプロジェクトの実行で、この実行時の状態はおそらくtf.train.import_meta_graphを使用して復元され、はその参照になります。関数get_tensor_by_nameは、復元された実行時メタグラフからexampleノードの保存された2番目の出力への参照を単に回復します。別のセッションの実行中に、この回復されたテンソルを自分のタスクで使用できるようになりました。

関連する問題