2016-06-21 12 views
2

TensorflowのMNISTチュートリアルでは、最後のプールレイヤーからの出力を単一のベクトルに再形成します。書き込まれたコードは次のとおりです。シェイプ配列の負のインデックスとは何ですか? (Tensorflow)

h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64]) 

-1インデックスは何ですか?出力を1つのベクトルに整形しようとしているのではないのですか?なぜ、[1、7 * 7 * 64]に変形するだけではありませんか?

ありがとうございます!

答えて

5

-1は自動展開を意味します。例えば、[-1,7 * 7 * 64]を使用した変形は、[19 * 7 * 7 * 64]の1次元形状を[19,7 * 7 * 64]の2次元形状に変換します* 64]。

もう1つの例では、[5、-1,7]を使用した変形は、[70]の1次元形状を[5,2,7]の3次元形状に変換します。

+0

を指定すべきかを推測します。 tfが-1になると、データ配列またはリストを所望の形状に適合させる。 –

1

-1が推論されます。

だからnumpyの又はTensorFlowは、寸法サイズが入ってくる要素に基づいており、他の寸法は、これは再テンソルを調整主にするためのものである

+0

これを踏まえて、-1はTensorFlowに推論されることを明示する明示的な方法です。これは、人間がコードを読んでいるときにも役立ちます。コードの作者がこの動作を意図していたからです。 – rdadolf

関連する問題