我目前正在创建机器学习模型,其最终目标是在iOS应用程序中部署模型。该应用程序将用于现场,与测试和培训相比,光照条件变化很大。
将高channel_shift_range
添加到我的图像数据生成器会提高我的模型识别图像的能力,即使在光照条件变化很大的情况下吗?
我当前正在使用
train_datagen = ImageDataGenerator(
rotation_range=360,
width_shift_range=0.2,
height_shift_range=0.2,
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
channel_shift_range=100,
data_format=ch_format,
brightness_range=(0.75, 1.25),
fill_mode='nearest')
test_datagen = ImageDataGenerator(rescale = 1./255,
data_format=ch_format)
对于我的数据生成器,并使用flow_from_directory
将我的图像加载到模型中。
从概念上讲,这会起作用并产生预期的结果吗?另外,如果在channel_shift_range
上添加test_datagen
,它会更准确地反映出模型在可变光照条件下的性能吗?
谢谢您的帮助!
通常,您不仅要应用channel_shift_range
,还要应用各种数据扩充。
请注意,原则上,您不应触摸测试数据集。在您的情况下,如果您对训练集应用某种扩充,则您也不想将其也应用于测试集。
使用扩充的想法是为模型提供许多示例,以便在“投入生产”时具有鲁棒性。如果您以扩展训练集的确切方式扩展了真实的测试数据集,您将只是“小作弊”;如您所知,您给出了很多示例,例如,将[K0]设为K作为训练集,将相同的确切值赋予测试集几乎就像将训练数据复制到测试数据中;您不想这样做。
请确保在您的案例中使用大量且相关的增强功能(例如,比较苹果和橙子时色偏并不是明智的选择)。>>