【问题标题】:python Deep learning load image datasetpython深度学习加载图像数据集
【发布时间】:2020-05-01 23:40:18
【问题描述】:

我是深度学习的新手。 我自己都觉得自己很傻,因为我一天要问很多问题。

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

我计划将图像加载到 numpy,我希望它的形状是:宽度 * 高度 * 图像计数(只有 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

【问题讨论】:

    标签: python deep-learning


    【解决方案1】:

    图像通常采用RGB 格式,产生 3 个通道,因此为 128*128* 3 * 242。

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

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

    考虑到RGB,这就是传统图像处理架构将其输入通道设置为 3 的原因。但是,MNIST 等黑白数据集只有一个通道。

    注意开头的 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]
    

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

    【讨论】:

    • 感谢您的回答。我现在不会忘记频道。但是,根据我的结果,图像计数没有形状。只有 128*128*3。我需要获取形状的图像计数,但它不起作用。我尝试了很多方法来放置,也许我错过了一些东西。
    猜你喜欢
    • 1970-01-01
    • 2015-10-09
    • 2017-03-04
    • 2018-03-29
    • 1970-01-01
    • 2020-07-22
    • 2019-01-21
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多