如何确定TensorFlow ImageDataGenerator图像增强的生成图像数量
ImageDataGenerator增强图像数量计算说明
核心前提
ImageDataGenerator是实时动态生成增强图像的,不会提前把所有增强后的图像保存到硬盘,而是在模型训练需要数据时,对原始图像随机应用增强操作生成样本。
1. 单张训练图像的生成次数
单张原始图像会被重复调用生成增强样本的次数,取决于训练轮次(epochs)、batch_size和训练集总数量:
- 你的场景中,训练集共16张图,batch_size设为32。每个epoch里,为了凑齐一个batch的32个样本,单张图会被调用2次(16×2=32),每次调用都会生成一个不同的增强版本(因为增强参数是随机的)。
- 训练10个epoch的话,单张图总共会生成
2×10=20个不同的增强样本。
2. 全部训练集的总生成样本数
总生成样本数 = 每个epoch的batch数 × batch_size × epochs
- 如果你没有手动设置
steps_per_epoch,Keras会自动计算:当训练集样本数小于batch_size时,默认每个epoch跑1个batch。 - 你的场景中,每个epoch生成32个样本,10个epoch总共生成
32×10=320个增强样本。 - 若手动指定
steps_per_epoch(比如设为5),总生成数则为5×32×10=1600,具体数值由你设置的steps_per_epoch决定。
补充说明
如果想更精准控制每个epoch的样本量,建议在fit_generator中显式设置steps_per_epoch参数,比如设为len(X_train),这样每个epoch会用原始训练集的16张图各生成1次增强样本,10个epoch总生成数就是16×10=160。
内容的提问来源于stack exchange,提问作者Pranab
相关产品推荐
相关产品推荐

