簡體   English   中英

如果我使用 keras 方法 Flow_from_firectory,如何在我的數據中執行規范化

[英]How to perform normalization in my data if i'm using the keras method Flow_from_firectory

我想用平均值和標准差對我的數據進行標准化,例如:

datagen.fit(data)
mean = datagen.mean  
std = datagen.std

print(mean, "mean")
print(std, "std")

在此之前,在我的預測文件中,我將放置 2 個值(均值和標准差)來調用此方法:

def normalize(x, mean, std):
    x[..., 0] -= mean[0]
    x[..., 1] -= mean[1]
    x[..., 2] -= mean[2]
    x[..., 0] /= std[0]
    x[..., 1] /= std[1]
    x[..., 2] /= std[2]
    return x

但在我的火車文件中,我使用方法 flow_from_directory 來獲取數據:

train_datagen = ImageDataGenerator(
        zoom_range=0.2,
        rescale=1./255,
        shear_range=0.2,
        horizontal_flip=True,
        featurewise_center=True,
        featurewise_std_normalization=True,)
train_generator = train_datagen.flow_from_directory(TRAIN_DIR,
    target_size=(224, 224),
    batch_size=50,
    class_mode='binary')

我的疑問是:如果我沒有 'x_train' 數組,我怎么能傳入datagen.fit(data)

我做得對嗎?

您可以自己計算均值標准差。 之后,只需將這些值設置為 DataGenerator:

datagen = image.ImageDataGenerator(featurewise_center=True,
                               featurewise_std_normalization=True)
datagen.mean = np.array([111.1, 222.2, 333.3], dtype=np.float32).reshape((1,1,3))
datagen.std = np.array([5.3, 4.2, 6.3], dtype=np.float32).reshape((1,1,3))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM