0

私は解決策を見つけることができませんでした.私の画像の形状は128 * 128 * 3で、3つのチャンネルがありますが、エラーも発生します

ファイル "E:/ML/keras_test/vgg.py"、30 行目、load_data 内 data[i,:,:,:] = arr

ValueError: 入力配列を形状 (128,128) から形状 (128,128,3) にブロードキャストできませんでした

以下のように私のコード:

def load_data(path):
data = np.empty((12755,128,128,3),dtype="uint8")
label = np.empty((12755,),dtype="uint8")


imgs = []
imgs_name = []
for each_person in os.listdir(path):
    temp = os.path.join(path,each_person)
    for each_image in os.listdir(temp):
        imgs.append(temp + "\\" + each_image)
        imgs_name.append(each_image)  

num = len(imgs)
for i in range(num):
    img = Image.open(imgs[i])
    arr = np.asarray(img,dtype="uint8")
    print arr.shape
    data[i,:,:,:] = arr
    label[i] = int(imgs_name[i].split('.')[0])

print 'load_data is ok!' + str(data.shape[0])
return data,label
4

1 に答える 1

0

元のデータを小さなパッケージに入れようとしていますが、これは不可能です。RGB チャンネルを持つ画像を 1 つのチャンネルを持つグレースケール画像に転送しようとしていると思います。試す

データム = (imgs.sum(axis=2) / 3).reshape((12755, -1))

結果datum12755 x 16384配列です。

于 2016-03-24T02:26:48.933 に答える