【问题标题】:Images for CNN model -- dimension issueCNN模型的图像——维度问题
【发布时间】:2021-04-29 18:00:13
【问题描述】:

我正在使用驾驶数据的图像(即个人用户的轨迹)CNN 模型中预测他们的实体店光顾次数。我的图像大多是黑白的,360 x 360 像素。当我将图像转换为 numpy 数组时,尺寸为 360 x 360 x 4而不是 RGB 的 3。一个

from PIL import Image
from numpy import asarray
# load the image
image = Image.open(os.path.join(fig_path, 'image.png'))

# convert image to numpy array
data = asarray(image)
print(type(data))
# summarize shape
print(data.shape)

# create Pillow image
image2 = Image.fromarray(data)
print(type(image2))

# summarize image details
print(image2.mode)

print(image2.size)

然后,我使用 temp[] 向量堆叠 CNN 所需的所有图像,并一一附加并使用 .但是当我将整个矩阵作为 input_shape 输入到 CNN 模型中时,它会中断。以下是错误信息:

link to my image

知道我的维度发生了什么吗?

【问题讨论】:

  • 所有这些打印语句的输出是什么?
  • 在错误消息中,ndim=4 是指4 图像通道,还是形状列表中有 4 个维度的事实?有没有可能是后者?
  • 查看引发错误的层的定义也可能会有所帮助。
  • 能否分享一下你的模型输入层?
  • 如果没有更多信息,我的猜测是您的一个图层会自动将第四个通道添加到 RGB,但该错误是不相关的,并且由于图层需要 5 维输入,例如(None, None, 360, 360, 4) 而不是接收 4,即 (None, 360, 360, 4)

标签: python image keras deep-learning conv-neural-network


【解决方案1】:

那可能是 Alpha 通道。尝试像这样丢弃它:

data = asarray(image)
data = data[:,:,:3]

print(type(data))
print(data.shape)

# <class 'numpy.ndarray'>
# (677, 586, 3)

this answer 的道具。

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2020-07-07
    • 2017-10-22
    • 2020-11-07
    • 2021-04-11
    相关资源
    最近更新 更多