gpt4 book ai didi

python - 将 ImageDataGenerator 结果分配给 Numpy 数组

转载 作者:太空狗 更新时间:2023-10-30 00:43:11 26 4
gpt4 key购买 nike

我在 Keras 中使用 ImageDataGenerator 来读取图像目录。我想将结果保存在一个 numpy 数组中,这样我就可以进行进一步的操作并将其保存到磁盘中的一个文件中。

flow_from_directory() 返回一个迭代器,这就是我尝试以下操作的原因

itr = gen.flow_from_directory('data/train/', batch_size=1, target_size=(32,32))
imgs = np.concatenate([itr.next() for i in range(itr.nb_sample)])

但是产生了

ValueError: could not broadcast input array from shape (32,32,3) into shape (1)

我想我误用了 concatenate() 函数,但我不知道哪里出了问题。

最佳答案

我遇到了同样的问题,解决方法如下:itr.next 将下一批图像作为两个 numpy.ndarray 对象返回:batch_x、batch_y。 (来源:keras/preprocessing/image.py)因此,您可以将 flow_from_directory 的 batch_size 设置为整个训练数据集的大小。

例如,我的整个训练集包含 1481 张图像:

train_datagen = ImageDataGenerator(rescale=1. / 255)
itr = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=1481,
class_mode='categorical')

X, y = itr.next()

关于python - 将 ImageDataGenerator 结果分配给 Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42284873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com