我请有关ImageDataGenerator两个问题:Augementations在Keras ImageDataGenerator
1)对整批使用相同的扩充或每个图像都有自己的随机变换? 例如对于旋转,模块是否以相同角度旋转批次中的所有图像,或者每个图像是否获得随机旋转角度?
2)ImageDataGenerator.flow中的数据无限期地循环(分批)。有没有办法阻止这个无限循环,即只做n次增强。因为我需要在每个步骤中修改batch_size(不是每个时期)。 感谢
我请有关ImageDataGenerator两个问题:Augementations在Keras ImageDataGenerator
1)对整批使用相同的扩充或每个图像都有自己的随机变换? 例如对于旋转,模块是否以相同角度旋转批次中的所有图像,或者每个图像是否获得随机旋转角度?
2)ImageDataGenerator.flow中的数据无限期地循环(分批)。有没有办法阻止这个无限循环,即只做n次增强。因为我需要在每个步骤中修改batch_size(不是每个时期)。 感谢
答:
1)对整批使用相同的扩充或每个图像都有自己的随机变换?例如对于旋转,模块是否以相同角度旋转批次中的所有图像,或者每个图像是否获得随机旋转角度?
每一个样本都有不同的独特变换(例如在一定范围内的随机旋转)。
2)ImageDataGenerator.flow中的数据无限期地循环(批量)。有没有办法阻止这个无限循环,即只做n次增强。因为我需要在每个步骤中修改batch_size(不是每个时期)。谢谢
不清楚这里是什么意思。但是,如果您使用的是model.fit_generator(ImageDataGenerator.flow())
,那么您可以指定samples_per_epoch=...
仅从发生器产生特定数量的样本。如果你想批量级粒度,你可以这样做:
for x, y in model.fit_generator(ImageDataGenerator.flow()):
model.train_on_batch(x, y)
你可以任意数量的批后仅break
(这是一个循环),您想要的话。
@便利:感谢您的及时答复!你说得对,我可能需要更好地解释我的任务。我的工作与分类视频序列类似,但我的数据保存在数据库中。我想我的代码遵循这一步骤,一个时代:
因为我在(number_of_sequences):
datagen = ImageDataGenerator()
和datagen.flow())
我首先想到的是使用model.fit_generator(发电机= ImageDataGenerator ()。流())但这样,我不能修改我的batch_size,老实说,我不明白你的解决方案。 对不起,对于很长的文章,但我仍然是Python和NN的新手,但我真的是凯拉斯的粉丝;) Thnx!