我的问题是我收到此错误-> ValueError:无法将大小为23715的数组重塑为形状(224,224,3)
这是我的代码:
X = np.array([i[0] for i in train_data]).reshape(-1, IMG_SIZE, IMG_SIZE, 3)
Y = [i[1] for i in train_data]
test_x = np.array([i[0] for i in test_data]).reshape(-1, IMG_SIZE, IMG_SIZE, 3)
test_y = [i[1] for i in test_data]
model.fit({'input': X}, {'targets': Y}, n_epoch=10, shuffle=True, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
我该怎么做才能解决此问题?在互联网上查看时,我发现了类似的错误,但仍存在修复问题。
答案 0 :(得分:0)
您的问题是train_data
中的图像大小都不相同。从您的测试输出中:
>>> [i[0].shape for i in train_data[:5]]
[(160, 160, 3), (224, 224, 3), (224, 224, 3), (160, 160, 3), (224, 224, 3)]
这里至少有两种不同的尺寸(160x160 RGB和224x224 RGB)。
结果是NumPy在创建X
时不知道如何对齐数据,因为输入元素的大小不一致。如果您打印X
,将会看到类似这样的内容:
>>> X
array([array([[[...
...
...]]])], dtype=object)
在这种情况下NumPy会退缩。
您将要查找为什么您的图片大小不同的原因。