2017-05-01 11 views
0

Tensorflowでは、N要素のベクトルはshape(0,N)または(1,N)ですか?Tensorflowベクトルランク/寸法

私はプレースホルダにベクトルを供給していますが、このエラーを取得しています:

ValueError: Cannot feed value of shape (1, 984) for Tensor u'Placeholder:0', which has shape '(0, 984)'

これはtf.expand_dimsがベクトルに「ファントム」のディメンションを追加するために必要とされる状況のタイプですか?

背景:多くの例をバッチで訓練します。訓練されたモデルをチェックポイントに保存します。チェックポイントからモデルを復元し、バッチサイズ= 1のフィードフォワード推論モード(トレーニングなし)で1つの例で実行します。明らかに、この問題は1つの入力例と多数の入力例から発生します。プレースホルダ:

images_placeholder = tf.placeholder(tf.float32, shape=(shared.batchSize, IMAGE_PIXELS)) 
+0

(サンプル、first_dim、second_dim、チャンネル) '私はtensorflowとあまり慣れていないが、私はあなたがフォームの寸法を持つべきだと思う'(これはマルチの場合であり、チャンネル画像)。したがって、サンプルが1つしかない場合は、最初の 'samples'ディメンションを忘れてしまいます。 1になります。 –

答えて

0

あなたはshape=(1, x)あなたがベクトルを作成しない使用する場合、あなたは1行x列で、行列を作成します。ベクトルを作成するには、shape=(x,)を使用します。この例を見てみましょう:

import tensorflow as tf 

a = tf.ones((1, 3)) 
b = tf.ones((3,)) 
with tf.Session() as sess: 
    print sess.run(a) 
    print sess.run(b)