2017-01-25 12 views
3

読書the Tensorflow MNIST tutorialは、私はライン上なぜMNISTチュートリアルで負の形状(-1)ですか?

x_image = tf.reshape(x, [-1,28,28,1]) 

28, 28をつまずい1は、チャンネル数から来て、width, heightから来ています。しかし、なぜ-1

私はこれがミニバッチトレーニングに関係していると思いますが、-1ではなく1(これはnumpyで同じ結果になるようです)と思ったのです。 (おそらく関連:numpyの形が-1,-21と同じ結果になるのはなぜですか?

+0

np.reshape()docsを見ましたか? newshapeの説明を参照してください。https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.reshape.html –

答えて

8

-1は、その次元の長さが推測されることを意味します。これは、ndarrayまたはTensorの要素の数を再構成したときの要素の数が同じでなければならないという制約に基づいて行われます。チュートリアルでは、各イメージは行ベクトル(784要素)であり、そのような行がたくさんあります(nとなるように、784n要素があります)。だから、あなたは

x_image = tf.reshape(x, [-1, 28, 28, 1])

を書くときTensorFlowは-1nであることを推測することができます。

+0

感謝します。私はドキュメントhttps://www.tensorflow.org/api_docs/python/array_ops/shapes_and_shaping#reshapeを見つけました。 –

関連する問題