我们可以使用带有flow_from_directory方法的ImageDataGenerator生成图像数据集。对于类的调用列表,我们可以使用oject.classes。但是,如何调用值列表?我已经搜索过,但仍未找到任何内容。

谢谢 :)

最佳答案

ImageDataGenerator是一个python生成器,它将每次生成一批形状与模型输入相同的数据(例如(batch_size,width,height,channels))。生成器的好处是,当您的数据集太大时,您无法将所有数据都放入有限的内存中,但是使用生成器,您每次可以生成一个批处理数据。并且ImageDataGenerator与model.fit_generator(), model.predict_generator()一起使用。

如果要获取数字数据,可以使用生成器的next()函数:

import numpy as np

data_gen = ImageDataGenerator(rescale = 1. / 255)

data_generator = datagen.flow_from_directory(
    data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='categorical')
data_list = []
batch_index = 0

while batch_index <= data_generator.batch_index:
    data = data_generator.next()
    data_list.append(data[0])
    batch_index = batch_index + 1

# now, data_array is the numeric data of whole images
data_array = np.asarray(data_list)

或者,您可以使用PILnumpy自己处理图像:
from PIL import Image
import numpy as np

def image_to_array(file_path):
    img = Image.open(file_path)
    img = img.resize((img_width,img_height))
    data = np.asarray(img,dtype='float32')
    return data
    # now data is a tensor with shape(width,height,channels) of a single image.

然后,您可以使用此功能循环播放所有图像以获取数字数据。

请注意,我建议您使用generator而不是直接获取所有数据,否则可能会耗尽内存。

关于python - 如何获取ImageDataGenerator.flow_from_directory Keras中的值列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44842097/

10-11 19:44