我是深度学习的新手。 我感到自己很愚蠢,因为我有一天要问很多问题。
我正在通过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
答案 0 :(得分:2)
图像通常为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]
但是,在处理图像之前先加载所有图像效率很低,因此在需要时逐个加载图像是一种很好的做法。但这应该可以解决您的问题吗?