python深度学习加载图像数据集

时间:2020-01-15 08:25:11

标签: python deep-learning

我是深度学习的新手。 我感到自己很愚蠢,因为我有一天要问很多问题。

我正在通过glob加载图像,但遇到了问题。

我计划将图像加载到numpy,并且希望它的形状为:width * height * imagecounts(仅1个形状),但事实并非如此。 我想要128 * 128 * 242,结果是128、128、3(而且我不知道'3'的来源。)

我认为,问题之一是我需要加载整个图像,但是每次我将数据更新为新图像时都没有计算计数。

我正在学习将“深度学习”转变为“深度学习”,我真的很想稍后自行实现,请帮忙。

数据示例:

[[255 255 255]
 [255 255 255]
 [255 255 255]
      ...
 [255 255 255]
 [255 255 255]
 [255 255 255]]

这是我的代码

def _load_img():
# I get data_list with
# data_list = glob('dataset\\training\\*\\*.jpg')
    for v in data_list: 
        data = np.array(Image.open(v))

#img_size : 128 * 128
#I reshaped the data to get 242 the number of images count.
    data = data.reshape(-1, img_size)

    return data

1 个答案:

答案 0 :(得分:2)

图像通常为RGB格式,具有3个通道,因此为128 * 128 * 3 * 242。

由于您不想丢失RGB信息,因此可以使用:

data = data.reshape(-1, img_size * 3)

这就是为什么考虑RGB,常规图像处理体系结构的输入通道设置为3的原因。但是,诸如MNIST之类的黑白数据集只有一个通道。

VGGNet architecture

请注意开头是224 x 224 x 3。

Image size: 224 X 224
Channel size (RGB) : 3

[编辑]

for v in data_list: 
        data = np.array(Image.open(v))

您不会在任何地方添加新创建的阵列。也许创建一个列表来处理所有图像:

data = [np.array(Image.open(v)) for v in data_list]

但是,在处理图像之前先加载所有图像效率很低,因此在需要时逐个加载图像是一种很好的做法。但这应该可以解决您的问题吗?