[英]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)
但是,我想將整個數據集(可能會擴充)存儲到x
和y
。 我該如何實現?
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.