2017-05-15 8 views
6

私はリストと言うを持って、次のプロパティを持つtemp_list:とValueError:形状に形状(224,224,3)からの入力配列を放送することができませんでした(224224)

len(temp_list) = 9260 
temp_list[0].shape = (224,224,3) 

さて、私はnumpyの配列に変換していたときに、私はエラーを取得しています

x = np.array(temp_list) 

ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224) 

は、誰かが私をここに助けることができますか?

リスト内の
+0

私はnp.flatten()を使用する必要があると思います。 – Aditya

+0

flattenは配列の形状を歪めます。 – neel

+0

入力サンプルを表示できますか? – Aditya

答えて

11

少なくとも一つの項目(最初のアイテムのような)三次元ではなく、単に2次元:224 224によって、あなたにエラーを与えているものです。
リストを4次元配列にするには、それを修正する必要があります。コンテキストがなければ、3Dアイテムから次元を失うか、2Dアイテムに次元を追加したいかは、言い表せません。

はここでエラーの例です:

>>> a = [np.zeros((224,224,3)), np.zeros((224,224,3)), np.zeros((224,224))] 
>>> np.array(a) 

ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224) 
0

いやを与える、実際@Evert答えは完全に正しいです。 さらに、このようなエラーが発生する可能性のある理由をもう1つ追加したいと思います。

>>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,200))]) 

これは完全に罰金となります、しかし、これはエラーにつながる:

>>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,201))]) 

ValueError: could not broadcast input array from shape (20,200) into shape (20) 

リスト内のnumpyののARRYは、また、同じサイズでなければなりません。

関連する問題