在 ImageDataGenerator 中,数据是在每个批次还是每个时期都增加的?
In ImageDataGenerator data is augmented in each batch or each epoch?
我知道在每个时代我们都有一组新的增强。但我的问题是,如果我们总共有 10 张样本图像,batch_size = 5
,并且我们采用 steps_per_epoch = 3
而不是 2,那么我们将在每个 epoch 中传递 5*3 = 15
图像,
所以我们肯定会有重复,我的问题是,如果图像 x
重复,两者将具有相同或不同的增强值。
这取决于新的增强是在每个批次还是每个时期发生。
谢谢,
增强是按时代发生的,而不是按批次发生的。
解释:
train_size = 10
batch_size = 5
steps_per_epoch = n*(train_size//batch_size) # n is any positive integer
ImageDataGenerator
的工作原理是,对于第 1 个时期,它将增强所有 10 张图像以生成 10 张增强图像,然后 select 1-5 个增强图像用于训练的第一步。这意味着您用于训练的数据是由时代定义的。在第一个时期的第二步中,将使用下一组增强图像,即 6-10。
在第 2 个时期,将生成一组新的增强图像,然后对于每个步骤,将使用定义数量的图像。因此,如果每个时期使用 3 个步骤,那么将重复 10 张增强图像集中的 5 张图像。
我知道在每个时代我们都有一组新的增强。但我的问题是,如果我们总共有 10 张样本图像,batch_size = 5
,并且我们采用 steps_per_epoch = 3
而不是 2,那么我们将在每个 epoch 中传递 5*3 = 15
图像,
所以我们肯定会有重复,我的问题是,如果图像 x
重复,两者将具有相同或不同的增强值。
这取决于新的增强是在每个批次还是每个时期发生。
谢谢,
增强是按时代发生的,而不是按批次发生的。
解释:
train_size = 10
batch_size = 5
steps_per_epoch = n*(train_size//batch_size) # n is any positive integer
ImageDataGenerator
的工作原理是,对于第 1 个时期,它将增强所有 10 张图像以生成 10 张增强图像,然后 select 1-5 个增强图像用于训练的第一步。这意味着您用于训练的数据是由时代定义的。在第一个时期的第二步中,将使用下一组增强图像,即 6-10。
在第 2 个时期,将生成一组新的增强图像,然后对于每个步骤,将使用定义数量的图像。因此,如果每个时期使用 3 个步骤,那么将重复 10 张增强图像集中的 5 张图像。