使用keras构建CNN比较笔迹时,我需要传递4D数组。但是,我的图像阵列只有一维,其中每个条目都是(250,250,3)图像。
print(x_train[0].shape)
>> (250,250,3)
print(x_train.shape)
>> (543, 1)
我收到以下错误:“预期conv2d_1_input具有4个维,但数组的形状为(543,1)”(请注意,该大小非常小,因为在构建数据库之前,我试图使网络工作) 。
我已经看到了几个带有建议修复的线程,可以将我的数组转换为(n_length,250,250,3)的形式-我认为。但是他们似乎都不适合我。我天真地尝试使用
重塑数组x_train.reshape(len(x_train),250,250,3)
这显然会引发错误。如果有任何建议,将不胜感激。
[x_train.reshape(len(x_train),250,250,3)
-如果您所有的图像都具有相同的尺寸,则绝对可以使用。
您可以尝试固定其尺寸并删除任何损坏的图像。
import cv2
x_train2 = []
for img in x_train:
if len(img.shape) == 3:
x_train2.append(cv2.resize(img, (250,250,3)))
x_train = np.array(x_train2).reshape(len(x_train2),250,250,3)