我正在使用该接收一组的形状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