Keras/ImageGenerator/Split data to train and validation/CNN

Keras/ImageGenerator/Split data to train and validation/CNN,image,tensorflow,keras,Image,Tensorflow,Keras,我对Keras CNN有疑问 是否可以使用相同的数据进行培训和验证 如果我必须把它们分开 如何将一辆福特车中的车辆分开(共有5类) 我正在使用ImageGenerator和model.fit_generator进行培训。。有用于分割model.fit数据的指令,但没有用于model.fit\u生成器的指令。。thx如果测试和训练数据集相同,则无法确定是否过度拟合。这是因为你的测试和训练精度是一样的。如果不使用保持数据集进行验证,则对经过训练的模型的可推广性几乎没有信心 您的文件层次结构可以指示哪

我对Keras CNN有疑问 是否可以使用相同的数据进行培训和验证

如果我必须把它们分开

如何将一辆福特车中的车辆分开(共有5类)


我正在使用ImageGenerator和model.fit_generator进行培训。。有用于分割model.fit数据的指令,但没有用于model.fit\u生成器的指令。。thx

如果测试和训练数据集相同,则无法确定是否过度拟合。这是因为你的测试和训练精度是一样的。如果不使用保持数据集进行验证,则对经过训练的模型的可推广性几乎没有信心

您的文件层次结构可以指示哪些图像将用于培训,哪些图像将用于验证。下面的示例说明了如何实现这一点。查看用于定义训练和验证生成器的flow_from_directory()函数

例如,如果我的文件层次结构如下所示:

data
├── train
│   ├── class1
│   ├── class2
│   ├── class3
│   ├── class4
│   └── class5
└── validation
    ├── class1
    ├── class2
    ├── class3
    ├── class4
    └── class5
然后我可以定义以下生成器,用于在5个类的64x64图像上进行培训

train_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(
        'data/train/',
        classes=['class1','class2','class3','class4','class5'],
        target_size=(64, 64),
        class_mode='categorical')

如果测试和训练数据集相同,则无法确定是否过度拟合。这是因为你的测试和训练精度是一样的。如果不使用保持数据集进行验证,则对经过训练的模型的可推广性几乎没有信心

您的文件层次结构可以指示哪些图像将用于培训,哪些图像将用于验证。下面的示例说明了如何实现这一点。查看用于定义训练和验证生成器的flow_from_directory()函数

例如,如果我的文件层次结构如下所示:

data
├── train
│   ├── class1
│   ├── class2
│   ├── class3
│   ├── class4
│   └── class5
└── validation
    ├── class1
    ├── class2
    ├── class3
    ├── class4
    └── class5
然后我可以定义以下生成器,用于在5个类的64x64图像上进行培训

train_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(
        'data/train/',
        classes=['class1','class2','class3','class4','class5'],
        target_size=(64, 64),
        class_mode='categorical')

您好,我的数据有5个类,每个类有1000个图像。我想要700辆火车和300辆验证车。有办法在model.fit中实现,但不适用于生成器。。。我该怎么做?感谢您拥有1000幅图像的列表,您可以从列表中随机选择索引,如下所示
index=np.arange(1000);训练指数=np.随机选择(指数700);测试指数=指数[~np.INAD(指数,序列指数)];打印(np.intersect1d(test_index,train_index))
,然后使用这些索引将图像划分为训练集和验证集。您好,我的数据有5个类,每个类有1000个图像。我想要700辆火车和300辆验证车。有办法在model.fit中实现,但不适用于生成器。。。我该怎么做?感谢您拥有1000幅图像的列表,您可以从列表中随机选择索引,如下所示
index=np.arange(1000);训练指数=np.随机选择(指数700);测试指数=指数[~np.INAD(指数,序列指数)];打印(np.intersect1d(测试索引、训练索引))
然后使用索引将图像分割为训练集和验证集。