gpt4 book ai didi

python - 为什么 Keras ImageDataGenerator 会抛出内存错误?

转载 作者:行者123 更新时间:2023-12-01 06:49:35 24 4
gpt4 key购买 nike

我正在 Keras 中构建一个简单的“猫与狗分类器”。在安装ImageDataGenerator时,我收到MemoryError。我的代码如下所示:

from keras.preprocessing.image import ImageDataGenerator

image_gen = ImageDataGenerator(shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)

image_gen.fit(X)

X 的形状为 (25000,150,150,3)

我做错了什么或者如何解决这个问题?

我已经检查过thisthis .

---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-10-2fd88662a693> in <module>
----> 1 image_gen.fit(X)

/opt/conda/lib/python3.6/site-packages/keras_preprocessing/image/image_data_generator.py in fit(self, x, augment, rounds, seed)
943 np.random.seed(seed)
944
--> 945 x = np.copy(x)
946 if augment:
947 ax = np.zeros(

/opt/conda/lib/python3.6/site-packages/numpy/lib/function_base.py in copy(a, order)
790
791 """
--> 792 return array(a, order=order, copy=True)
793
794 # Basic operations

MemoryError:

最佳答案

您正在生成器中使用数据增强,这实际上使您拥有的图像数量增加了三倍。您的计算机很可能无法处理内存中的 75k 图像(由于 RAM 特别是 GPU RAM 较低)。您的选择是减小图像大小、减少增强,或者让数据生成器从文件夹中读取图像而不将它们存储在内存中(批量)。

如图here它看起来像这样:

train_datagen = ImageDataGenerator(shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32,
class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')

# Change to match your problem
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)

关于python - 为什么 Keras ImageDataGenerator 会抛出内存错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com