私はTensorFlowを初めて使用しています。私は書類を読んでいるうちに。私は用語tensor
が本当に混乱していることを発見しました。 tensor
とVariable
との関係はどうですか、tensor
と対tf.constant
、 'テンソル'対tf.placeholder
?彼らはすべてのタイプのテンソルですか? glossaryからTensorFlowの用語「テンソル」を理解するには?
答えて
TensorFlowにはファーストクラスのTensorオブジェクトがありません。つまり、実行時に実行される基になるグラフにはTensor
という概念はありません。その代わりに、グラフは、オペレーションを表す相互に接続されたオペレーションノードからなる。オペレーションは、その出力にメモリを割り当てます。これはエンドポイント:0
,:1
などで利用でき、これらのエンドポイントはそれぞれTensor
と考えることができます。 nodename:0
に対応するtensor
がある場合は、その値をsess.run(tensor)
またはsess.run('nodename:0')
として取得できます。実行粒度は操作レベルで発生するため、run
メソッドはop30を実行し、:0
エンドポイントだけでなく、すべてのエンドポイントを計算します。出力がないOpノード(例えば、tf.group
)を持つことができます。この場合、テンソルが関連付けられていません。基礎となるOpノードなしでテンソルを持つことはできません。
あなたはtf.constant
を使用すると、単一の操作ノードを取得し、あなたが同様にsess.run("Const:0")
またはsess.run(value)
を使用して、それを取り出すことができますので、この
tf.reset_default_graph()
value = tf.constant(1)
print(tf.get_default_graph().as_graph_def())
ような何かを行うことで基本的なグラフで何が起こるか調べることができ、value=tf.placeholder(tf.int32)
名前がPlaceholder
の通常のノードが作成され、feed_dict={"Placeholder:0":2}
またはfeed_dict={value:2}
としてフィードできます。同一のsession.run
コールでプレースホルダをフィードして取得することはできませんが、その上にtf.identity
ノードを付けて取得して結果を確認できます。あなたは、2つのノードVariable
とVariable/read
を作成していることがわかります変数
tf.reset_default_graph()
value = tf.Variable(tf.ones_initializer()(()))
value2 = value+3
print(tf.get_default_graph().as_graph_def())
については
、:0
エンドポイントは、これらのノードの両方にフェッチするための有効な値です。しかし、Variable:0
には、ref
という特殊タイプがあります。これは、それが突然変異操作への入力として使用できることを意味します。 Python呼び出しtf.Variable
の結果はPython Variable
オブジェクトであり、突然変異が必要かどうかによって、Variable/read:0
またはVariable:0
を代用するPythonの魔法があります。ほとんどのオペレーションは1つのエンドポイントしか持たないので、:0
は削除されます。もう1つの例はQueue
-close()
で、Queue
opに接続する新しいClose
オペレーションノードを作成します。要約すると、Variable
とQueue
のようなpythonオブジェクトの操作は、使用方法に応じて異なる基礎となるTensorFlowオペレーションノードにマップされます。 tf.split
または複数のエンドポイントとノードを作成tf.nn.top_k
、Pythonのsession.run
コールのようなOPSについて
が自動的tuple
あるいは個別に取り出すことができるTensor
オブジェクトのcollections.namedtuple
に出力をラップ。
「ファーストクラスのテンソルオブジェクト」はどういう意味ですか? 'tf.Tensor'というクラスがあります。可能であれば、例を使って説明することができます。 –
下のグラフにテンソルはありません。他の操作に接続されているops –
操作にはどのようにアクセスしますか?操作の入力と出力のみに直接アクセスできますか? –
:
テンソルは、入力した多次元配列です。たとえば、次元[バッチ、高さ、幅、チャネル]を持つイメージのミニバッチを表す浮動小数点数の4次元配列。
基本的に、すべてのデータはTensorFlowにおけるテンソル(名前)です:
- プレースホルダを使用すると、(
sess.run()
にfeed_dict
引数を指定して)値を供給することができますするテンソル - です変数は更新可能なテンソル(
var.assign()
)です。 tf.constant
しかし、グラフに、すべてのノードがあり、あなたがそれ
を作成するときに指定した固定値が含まれているだけで、最も基本的なテンソル、ですが、厳密に言えば、tf.Variable
はtf.Tensor
のサブクラスではありませんオペレーションは、入力または出力としてテンソルを持つことができます。
私は同意しません。 テンソルフローのセクション2を見ると、「TensorFlowグラフでは、各ノードに0以上の入力があります。 と0以上の出力があり、操作のインスタンス化 を表しています。変数、定数、およびプレースホルダーは、tf.mulやtf.addのようなOPERATIONSのインスタンス化というノードです。私は彼らが出力としてテンソルを生成すると思うが、彼ら自身がテンソルではない。 – ZijunLost
はい、グラフは、それらの間にTensorsを渡す操作で構成されています。私はテンソルを更新して、 'tf.constant'と' tf.placeholder'に結びついた操作を説明します –
ありがとうございますが、プレースホルダや定数をテンソルを生成する '演算'テンソル "と呼ばれる。ドキュメントを読むと:「TensorFlowは、実行時にデータを入力する必要があるプレースホルダ操作を提供します。詳細については、データのフィードに関する節を参照してください。 – ZijunLost
既に述べたように、はい、すべてテンソルです。
私がそれらを理解する方法は、下の図のように1D、2D、3D、4D、5D、および6Dのテンソルを最初に視覚化して理解することです。 (ソース:knoldus)
さて、TensorFlowの文脈では、あなたは以下のような計算グラフを想像することができます。ここ
、入力ように、2つのテンソルa
とb
をとります。 はとテンソルを掛け合わせた後、はこれらの乗算の結果をと加算して結果のテンソルt3
を生成します。そして、これらのの乗算との追加Op
は、計算グラフのノードで発生します。
これらのテンソルは、定数テンソル、可変テンソル、またはプレースホルダにすることができます。操作を達成するのに同じデータ型と互換性のある形状(またはbroadcast
が可能)であれば問題ありません。
- 1. NumpyでTensorflowテンソルを前処理する
- 2. TensorFlow:テンソルを使用して別のテンソルをインデックスする
- 3. TensorFlowは、concat-resultテンソルから異なるテンソルのテンソルに割り当てます。
- 4. Tensorflow - サマリーをテンソルに書く
- 5. Tensorflowテンソルの列を引く
- 6. バッチ・4DテンソルTensorflowインデクシング
- 7. Tensorflowの理解tf.train.shuffle_batch
- 8. Tensorflowのトップnテンソルの値
- 9. テンソルのTensorflow「マップ操作」?
- 10. TensorFlowの双一次テンソル積
- 11. TensorFlowテンソルをTFLearnモデルに渡す方法
- 12. Tensorflow - テンソルを非可逆化する
- 13. tensorflowのコードを理解するC++ API
- 14. Tensorflow:ランク1のテンソルをランク2のテンソルに変換する方法
- 15. tensorflow:上記のコードではテンソル
- 16. テンソルで2つのテンソルのドット乗算を理解するにはどうすればよいですか?
- 17. Tensorflow:テンソルを名前で取得するには?
- 18. Tensorflowでは、タイプが_refで終わっているテンソルとテンソルがないテンソルの違いは何ですか?
- 19. Tensorflowで2テンソルを減らす
- 20. Tensorflowのテンソルから特定の行をフェッチする方法は?
- 21. Tensorflowテンソルでケラス層の入力を設定する方法は?
- 22. TensorFlowでテンソルの要素を反復する方法は?
- 23. Tensorflow:コストのためのテンソルの一覧
- 24. Tensorflow:プレースホルダ変数にテンソルを与える方法は?
- 25. TensorFlowのテンソルに情報を追加する
- 26. TensorFlowテンソルの最大要素のインデックス
- 27. テンソルでのTensorflowの更新値
- 28. TensorFlowで単一テンソルでテンソルのリストを乗算するにはどうすればよいですか?
- 29. tensorflow名前でテンソルを追加
- 30. Tensorflow辞書テンソルでの辞書検索
はい、テンソルはオブジェクトのようなものですが、変数などの文字列になる可能性があります。 –
TensorFlowに**データ**と**操作**が何であるか理解していると、この質問に役立ちます。 – zhy