我正在使用該接收一組的形狀M x N
的I
灰度圖像作爲參數的功能的應用。numpy的重塑的數據集
我
print(train_set.shape)
print(train_set[0].shape)
>>(50,)
>>(133, 100)
我需要重塑這個數據集來塑造(I, M, N)
。
我想
train_set.reshape(len(train_set),len(train_set[0]),len(train_set[0][0]))
但我有以下錯誤
>>>ValueError: cannot reshape array of size 50 into shape (50,133,100)
所以,我怎樣才能重塑我的數據集(I, M, N)
或(50, 133, 100)
在這種情況下?
編輯: 這是我如何建立數據集中
train_set =[]
lbl_train=[]
for cl_ in range(50):
for ex_ in range(15):
cl = str("%02d" % (cl_+1,))
ex = str("%02d" % (ex_+1,))
img = Image.open('cropped_faces/'+'s'+str(cl)+'_'+str(ex)+'.jpg').convert('L')
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
lbl_train.append(cl)
mat = numpy.asarray(img,dtype=numpy.float)
train_set.append(mat.reshape(len(mat),len(mat[0])))
print(numpy.asarray(train_set).shape)
print(numpy.asarray(train_set[0]).shape)
當你print(train_set [0] [0] .shape)時,你會得到什麼? –
嘗試'np.stack(train_set)'。它看起來像你有一個數組的數組(但這些信息缺乏的問題)。根據你如何建立'train_set',numpy可能不知道如何自動將單個圖像合併成一個大陣列。 – kazemakase
類型(train_set)和類型(train_set [0])的輸出是什麼? – Allen