我正在使用ImageDataGenerator来增强我的图像 . 我需要从发电机获取y标签 .
示例:我有10个训练图像,7个是标签0,3个是标签1.我想将训练集大小增加到100 .
total_training_images = 100 total_val_images = 50
model.fit_generator(
train_generator,
steps_per_epoch= total_training_images // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps= total_val_images // batch_size)
根据我的理解,这为每个时期的100个训练图像训练模型,每个图像根据我的数据生成器以某种方式或另一个增强,然后在50个图像上进行验证 .
如果我做 train_generator.classes
,我得到一个输出[0,0,0,0,0,0,0,1,1,1] . 这对应于标签0的7张图像和标签1的3张图像 .
对于这些新的100张图片,我如何获得y标签?这是否意味着当我将此增加到100张图像时,我的新 train_generator
标签是相同的,但重复了10次?基本上 np.append(train_generator.classes)
10次?
我正在关注本教程,如果有帮助:https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
2 回答
标签生成与图像一起热编码 . 希望这有帮助!
基于你对发电机的看法,是的 .
它将为每个增强图像复制相同的标签 . (否则模型不能正常训练) .
检查生成器输出内容的一种简单方法是获得它产生的结果:
请记住,这会将发电机置于产生第二个元素的位置,而不是第一个元素 . (这将使fit方法从第二个元素开始) .