如何将Keras ImageDataGenerator转换为Numpy阵列?
我正在研究CNN模型,我很想知道如何将datagen.flow_从_directory()给出的输出转换成一个不规则的数组。_directory()中的datagen.flow_的格式是directoryiterator 除了ImageDataGenerator之外,还有其他从目录中获取数据的方法如何将Keras ImageDataGenerator转换为Numpy阵列?,numpy,tensorflow,keras,deep-learning,conv-neural-network,Numpy,Tensorflow,Keras,Deep Learning,Conv Neural Network,我正在研究CNN模型,我很想知道如何将datagen.flow_从_directory()给出的输出转换成一个不规则的数组。_directory()中的datagen.flow_的格式是directoryiterator 除了ImageDataGenerator之外,还有其他从目录中获取数据的方法 img_width = 150 img_height = 150 datagen = ImageDataGenerator(rescale=1/255.0, validation_split=0.2
img_width = 150
img_height = 150
datagen = ImageDataGenerator(rescale=1/255.0, validation_split=0.2)
train_data_gen = directory='/content/xray_dataset_covid19',
target_size = (img_width, img_height),
class_mode='binary',
batch_size=16,
subset='training')
vali_data_gen = datagen.flow_from_directory(directory='/content/xray_dataset_covid19',
target_size = (img_width, img_height),
class_mode='binary',
batch_size=16,
subset='validation')
第一种方法:
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)
第二种方法:您应该使用,它直接获取
numpy
数组。这将替换来自目录的flow\u调用
调用,使用生成器的所有其他代码应相同谢谢您,先生,您的回答您如何使用此方法获得相应的标签?
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