2017-09-19 9 views
0

私はニューラルネットワークに取り組んでおり、形状には何度も問題があります。テンソルのサイズを心配する必要はありません。 ... 既知の形状の数値の代わりにNoneを使用することには欠点がありますか?コードの実行中に2 テンソルを定義しながらテンソルの形状を計算する

input_placeholder = tf.placeholder(tf.float32,[64,100]) 

方法1

input_placeholder = tf.placeholder(tf.float32,[None,None]) 

方法は、それはどんな違いを生むだろうか?

答えて

0

Tensorflowのtf.placeholder()テンソルは、固定シェイプを渡す必要はありません。これにより、後でtf.Session.run()の別の図形を渡すことができます。 あなたのコードは正常に動作します。 プレースホルダを作成するとき、Tensorflowはメモリを割り当てないため、不都合はありません。プレースホルダーにフィードするときは、tf.Session.run()の呼び出しで、TensorFlowは入力テンソルに適切なサイズのメモリを割り当てます。

あなたが拘束されていない形状、すなわち、Noneでそれらを定義し、さらにあなたのコード内でいくつかの操作でこれらのinput_placeholderを使用する場合はSession.run()中に動的にそれらのオペレーションを実行しながら、テンソルの形状に関連したいくつかのチェックを実行するためにTensorflowを引き起こす可能性がありますコール。これは、グラフを作成する際に、Tensorflowは入力の正確な形状を知らないためです。

関連する問題