使用Keras加载训练图像

使用Keras加载训练图像,keras,Keras,要使用Keras训练模型,我是否应该将所有图像加载到一个数组中,以创建类似 x_train, y_train 或者,有没有更好的方法在训练时在飞行中读取图像。我没有寻找ImageDataGenerator类,因为我的输出是一个点数组,而不是基于目录名的类 我设法将我的数据csv文件包含在9列中的点阵列和图像文件名,如下所示: x1 x2。。。。。x8 Image_file_name将整个数据集加载到阵列中的内存中不是一个好主意,因为内存消耗可能会失控,因此应该使用生成器。ImageDataGe

要使用Keras训练模型,我是否应该将所有图像加载到一个数组中,以创建类似

x_train, y_train
或者,有没有更好的方法在训练时在飞行中读取图像。我没有寻找ImageDataGenerator类,因为我的输出是一个点数组,而不是基于目录名的类

我设法将我的数据csv文件包含在9列中的点阵列和图像文件名,如下所示:


x1 x2。。。。。x8 Image_file_name

将整个数据集加载到阵列中的内存中不是一个好主意,因为内存消耗可能会失控,因此应该使用生成器。ImageDataGenerator和来自数据帧的flow_是在Keras中加载图像的好方法。既然你不想使用ImageDataGenerator(你能说说为什么吗?),你可以创建自己的generator函数,在内存中加载图像块。如果在生成器中加载数据,请确保使用拟合生成器和预测生成器函数

要加载未标记的数据,您可以执行以下操作:

datagen = ImageDataGenerator()
test_data = datagen.flow_from_directory('.', classes=['directory_where_images_are_stored'])
有关更多信息,请查看链接[1]


[1]

您可以将此数据与
ImageDataGenerator
一起使用。您错误地认为它需要用于类的文件夹,但这仅适用于来自目录的
flow\u
。方法
flow\u from_dataframe
允许您从数据帧加载数据,您可以从数据帧加载数据,例如:

idg = ImageDataGenerator(...)
df = pd.load_csv('your_data.csv')
generator = idf.flow_from_dataframe(directory='image folder', x_col = 'filename_column',
                                    y_col = ['col1', 'col2', ..., 'coln'],
                                    class_mode='other')

此生成器将从数据帧中读取数据,按照
x_col
的值在
目录中加载图像文件名,并使用相应的行来构建目标,在这种情况下,目标将是
y_col
中列值的numpy数组。有关此方法的更多信息,请参见。

据我所知,ImageDataGenerator工作于标记整个图像的位置(分类如狗与猫的示例)。我的输出是Kaggle Face keypoint detection中的一个点数组。我的类不是基于目录的,输出是一个4(x,y)点数组。这里的一点是,我们如何知道图像的顺序,以匹配标签ImageDataGenerator有什么问题?您的问题非常广泛,您需要添加详细信息,以便回答。我解释了问题,直到我理解为止。不,您没有,例如,没有关于标签当前如何存储的信息。我有9列,8列用于数据值(我标记的4个点的x、y坐标),一列用于图像文件名