我知道在每个周期中我们会有一组新的增强。但我的问题是,如果我们总共有10张样本图像,batch_size = 5
,并且我们选择了steps_per_epoch = 3
而不是2,那么我们在每个周期中将传递5*3 = 15
张图像,
因此肯定会有重复,我的疑问是,如果图像x
被重复了,它们的增强值是相同的还是不同的。
这取决于新的增强是在每个批次还是每个周期中发生的。
谢谢,
回答:
增强是以周期为单位进行的,而不是每个批次。
解释:
train_size = 10 batch_size = 5steps_per_epoch = n*(train_size//batch_size) # n是任何正整数
ImageDataGenerator
的工作方式是,在第一个周期中,它会对所有10张图像进行增强以生成10张增强后的图像,然后从中选择1-5张增强后的图像用于训练的第一步。这意味着您用于训练的数据是由周期定义的。在第一个周期的第二步中,将使用下一组增强后的图像,即6-10张。
在第二个周期中,将生成一组新的增强图像,然后对于每个步骤,将使用定义数量的图像。因此,如果您每个周期使用3个步骤,那么5张图像将从10张增强图像集中重复使用。