【问题标题】:featurewise std normalization can not fit for each batch in flow from directory功能性标准标准化不能适用于目录中的每个批次
【发布时间】:2021-11-29 15:58:15
【问题描述】:

我想对来自 Dataset 的每批图像进行标准化和标准化。 公式为:Xi = (Xi - mean) / std(像素级全局均值(SD))

我使用 ImageDataGenerator 和 flow_from_directory 如下:

datagen = ImageDataGenerator(featurewise_center=True, 
                             featurewise_std_normalization=True, 
                             vertical_flip=True,              #data augmentation 
                             validation_split= 0.1,           #validation
                             rescale=1./255,                  #Scaling
                             horizontal_flip=True)            #data augmentation 

train_gen = datagen.flow_from_directory(
            train_data_dir,
            target_size=(img_height,img_width),
            batch_size=batch_size,
            class_mode='binary',
            subset='training',
            shuffle=True)

valid_gen = datagen.flow_from_directory(...)

model = Model(...) #I use ResNet and some fully connected layer
model.compile(...)

trainer= model.fit(train_gen,
                   validation_data= valid_gen,
                   epochs=16,
                   verbose=2)

根据我的需要,我在ImageDataGenerator 中使用featurewise_centerfeaturewise_std_normalization。但似乎这些选项不适用于 flow_from_directory !我也应该使用flow_from_directory,因为我的数据很重(我没有足够的内存来同时处理整个数据集)。

你能给我一些解决这个问题的建议或意见吗?即如何在这种方法中实现图片的像素级全局均值(SD)?

【问题讨论】:

    标签: tensorflow machine-learning keras deep-learning computer-vision


    【解决方案1】:

    为了达到效果,您必须在训练模型之前运行train_generator.fit。这方面的文档是here.

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2019-12-18
      • 2020-03-23
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 2013-06-17
      相关资源
      最近更新 更多