Python 3.x 使用Keras DataGenerator在拆分之前洗牌训练数据
我的模型显然是过度拟合了,我到处都看到我应该在分割数据之前尝试对数据进行洗牌。我使用:Python 3.x 使用Keras DataGenerator在拆分之前洗牌训练数据,python-3.x,machine-learning,keras,computer-vision,Python 3.x,Machine Learning,Keras,Computer Vision,我的模型显然是过度拟合了,我到处都看到我应该在分割数据之前尝试对数据进行洗牌。我使用: 现在就开始进行数据处理和拆分,并了解到shuffle=True实际上并没有做我认为它做的事情(或者可能做任何事情)。所以我的问题是我应该如何加载和分割这些数据?我在train文件夹中有图像文件,然后我有一个.csv文件,其中一列中有文件名,另一列中有标签。这是我第一次尝试任何机器学习内容,如果这是一个愚蠢的问题,我很抱歉。如果我正确理解了您的代码,您将加载dataframe=df作为培训/验证集的输入,并加
现在就开始进行数据处理和拆分,并了解到shuffle=True实际上并没有做我认为它做的事情(或者可能做任何事情)。所以我的问题是我应该如何加载和分割这些数据?我在train文件夹中有图像文件,然后我有一个.csv文件,其中一列中有文件名,另一列中有标签。这是我第一次尝试任何机器学习内容,如果这是一个愚蠢的问题,我很抱歉。如果我正确理解了您的代码,您将加载
dataframe=df
作为培训/验证集的输入,并加载测试集的dataframe=test\u df
shuffle=True
将在指定的数据帧内洗牌加载的样本
因此,如果您从不同的源加载,则在拆分后将进行洗牌
要在拆分之前进行洗牌,您需要
- 在加载或删除之前,在目录之间移动图像
- 使用ImageDataGenerator(shuffle=True)加载它,使用数组操作拆分它,并手动设置测试集或
- 完全删除文件的不同目录,将.csv作为数据帧加载,然后使用这些部分数据帧作为ImageDataGenerator的输入
就我个人而言,我会选择最后一个选项。我知道这是您现在的问题,但您可能想看看是否存在过度装修的问题。