我有200000张彩色图像,每个图像的尺寸(50x50x3)作为列表存储在Python中。因为它全部在列表中,所以我想将其更改为尺寸为(200000,50,50,3)的numpy数组。但是,使用np.toarray(list)
返回一个形状数组(200000,)
但是如果我缩短列表(例如仅接受10000个元素)然后执行np.toarray(shortened_list)
,它将返回正确的形状数组(10000,50,50,3)
我想使用Keras将图像馈送到CNN。
答案 0 :(得分:1)
一个或多个图像没有正确的形状,或者不是图像,因此不可能将它们放入数字数组中。
然后Numpy正在创建对象数组。找到错误的图像并将其从列表中删除或正确调整其大小。
提示:
for i, img in enumerate(shortened_list):
if not hasattr(img, 'shape'):
print("wrong image at index " + str(i))
elif img.shape != (50,50,3):
print("wrong image at index " + str(i))