2017-10-10 4 views
-1

私は最近、次のエラーメッセージで腹を立ててきた:どのようにテンソル配列ですか?

NUMCLASSES=16 
NUMPIXELS=959*640*4 
# set up to feed an array of images [images, size_of_image] 
x = tf.placeholder(tf.float32, [NUMPIXELS,None]) 

.... deletia ....

# Define loss and optimizer..why is this 2d? 
y_ = tf.placeholder(tf.float32, [None,NUMCLASSES]) 


sess = tf.InteractiveSession() 
tf.global_variables_initializer().run(session=sess) 
tl = get_tensor_list() 

for f, n in tl: 
    str = '/users/me/downloads/train/' + f 
    mm = Image.open(str) 
    mm = mm.convert('F') 
    mma=np.array(mm) 
    i = mma.flatten() #now this is an array of floats of size NUMPIXELS 
    sess.run(train_step, feed_dict={x: i, y_: n}) # <<DEATH 
:次のコードを実行しているから生産されている

ValueError: Cannot feed value of shape (2455040,) for Tensor 'Placeholder:0', which has shape '(2455040, ?)' 

どういうわけか、その配列は、tfが望むときに[(x、)]が好きではない形をしています。この場合のテンソルードをどのように満たすか?テンソルは、議論されていない他の数学的な理由からでなければなりません。

+0

質問を明確に書くことを検討してください。あなたのサンプルコードもあいまいです。 –

+0

もう一度やり直してみましょう:テンソルの形状[NUMPIXELS、なし]を宣言して、形状[ROWPIX、COLPIX]のイメージを取得して、[NUMPIXELS]にフラット化して、sess.run() 。私は質問があると仮定します:(1)画像の形を[NUMPIXELS]に強制する方法。 (2)テンソルが[NUMPIXELS、None(==?)]のときに形状[NUMPIXELS]が十分でないのはなぜですか? –

答えて

0

アレイを再構成すると役立ちます。

i = mma.flatten().reshape((NUMPIXELS,1)) 
+0

そこにいた、それは、Tシャツを得た。喜び:(NUMPIXELS、)。 –

0

2個のテンソルが異なるranksを持っているため、エラーが起こる:形状のテンソルは(2455040 ,?)あなたはこれを行うことができ、ランク2

を有している形状のテンソルは(2455040)、ランク1を持っています:

x = tf.placeholder(tf.float32, [None]) 
x = tf.reshape(x, [NUMPIXELS,-1]) 
関連する問題