2016-10-27 3 views
1

次のようにデータを画像に変形しようとしています。すべては最後の行のコードを除いて、うまく機能:画像をデータに変形するValueError:入力配列を形状(1,3072)から形状(32,3)にブロードキャストできませんでした

y[i]=image2 

リットル新しい変数yに結果を格納します。

**ValueError: could not broadcast input array from shape (1,3072) into shape (32,3)** 

マイコード:

from numpy import * 
    import cPickle 
    import scipy.io as io 
    from random import randrange 

     y = [len(v) for v in batch_1.values()] 

    Y = zeros([len(batch_1['data'][:]),3072]) 
    for i in range(len(batch_1['data'][:])): #len() =10000 
     image = batch_1['data'][i] 
     image.shape = (3, 32, 32) 
     image_result = copy(image.transpose((1, 2, 0))) 
     image_result = reshape(image_result, (1, 3072)) 
     Y[i] = image_result 

答えて

0

問題は余分な次元である私は、ラインコードy[i]=image2で、このエラーを得ました。 3072

EDIT(1, 3072)を交換してください:あなたのコードでより多くの問題が同様に存在する

Yが定義され、そしてラインimage_result= reshape(image2, (1, 3072))で私はあなたが実際に意味するものと思われていません。

image2 = reshape(image_result, (1, 3072)) 

新しいコードは(テストしていない)、次のようになります。

from numpy import * 
import cPickle 
import scipy.io as io 
from random import randrange 

Y = zeros([len(batch_1['data'][:]),3072]) 

for i in range(len(batch_1['data'][:])): #len() =10000 
    image = batch_1['data'][i] 
    image.shape = (3, 32, 32) 
    image_result = copy(image.transpose((1, 2, 0))) 
    image2 = reshape(image_result, (1, 3072)) 
    y[i]=image2 
+0

リットルが定義されていない中で、この変数yを得た – vincet

+0

私はこのようにy [i] = 0(1,3072)を初期化できますか? – vincet

+0

私はこの行によって次のように思います: 'image_result = reshape(image2、(1、3072))'あなたは実際に 'image2 = reshape(image_result、(1、3072))'を意味しました – Yugi

関連する問題