将Python列表重塑为Keras CNN的numpy数组

时间:2018-12-05 17:09:35

标签: python arrays numpy keras

我有200000张彩色图像,每个图像的尺寸(50x50x3)作为列表存储在Python中。因为它全部在列表中,所以我想将其更改为尺寸为(200000,50,50,3)的numpy数组。但是,使用np.toarray(list)返回一个形状数组(200000,)

但是如果我缩短列表(例如仅接受10000个元素)然后执行np.toarray(shortened_list),它将返回正确的形状数组(10000,50,50,3)

我想使用Keras将图像馈送到CNN。

1 个答案:

答案 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))