簡體   English   中英

Keras-將圖像從生成器加載到內存

[英]Keras - Load images from generator into memory

我想利用keras ImageDataGenerator提供的圖像增強選項將圖像加載到內存中。 因此,我正在創建自己的生成器,如下所示:

testgen = ImageDataGenerator(preprocessing_function=keras.applications.mobilenet.preprocess_input)

test_generator = testgen.flow_from_dataframe(dataframe=df_test, 
                                             classes=class_labels, 
                                             directory=data_dir,
                                             x_col=training_on, 
                                             y_col=target, 
                                             has_ext=True, 
                                             class_mode="categorical", 
                                             target_size=(224,224), 
                                             batch_size=batch_size,
                                             seed = 1,
                                             shuffle=False)

現在,我可以使用:

x,y = next(test_generator)

但是,我想將整個數據集(可能會擴充)存儲到xy 我該如何實現?

xTrain = list()
yTrain = list()
for i in range(len(test_generator)):
    x,y = test_generator[i] 
    xTrain.append(x)
    yTrain.append(y)

xTrain = np.array(xTrain)
yTrain = np.array(yTrain)

替代方案:

xTrain = list()
yTrain = list()
for i in range(number_of_batches):
    x,y = next(test_generator)
    xTrain.append(x)
    yTrain.append(y)

xTrain = np.array(xTrain)
yTrain = np.array(yTrain)

請注意,這不會導致明顯的擴充。 您最終將獲得與原始數據相同數量的樣本。

為了使增強真正起作用,您需要反復訓練此生成器,以便生成同一圖像的許多不同隨機版本。

暫無
暫無

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

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