Python 2.7 如何修复';MemoryError';在使用fit_生成器安装keras模型时?

Python 2.7 如何修复';MemoryError';在使用fit_生成器安装keras模型时?,python-2.7,tensorflow,keras,google-cloud-platform,Python 2.7,Tensorflow,Keras,Google Cloud Platform,我正在谷歌云tensorflow虚拟机实例上训练一个unet。当我运行fit_generator时,我会得到一个MemoryError 当我在tensorflow(cpu版本)上本地运行相同的代码时,不会发生这种情况。我已经尝试将VM实例上的RAM增加到13GB(比我的本地计算机大) model=unet() model\u checkpoint=ModelCheckpoint('unet\u membrane.hdf5',monitor='loss',verbose=1,save\u best

我正在谷歌云tensorflow虚拟机实例上训练一个unet。当我运行fit_generator时,我会得到一个MemoryError

当我在tensorflow(cpu版本)上本地运行相同的代码时,不会发生这种情况。我已经尝试将VM实例上的RAM增加到13GB(比我的本地计算机大)

model=unet()
model\u checkpoint=ModelCheckpoint('unet\u membrane.hdf5',monitor='loss',verbose=1,save\u best\u only=True)
model.fit_生成器(myGene,每_epoch的步数=300,epoch=1,回调=[model_检查点])
我希望模型能够训练,但相反,我得到了一个带有以下回溯的MemoryError

Epoch 1/1
Found 30 images belonging to 1 classes.
Found 30 images belonging to 1 classes.
Traceback (most recent call last):
  File "main.py", line 18, in <module>
    model.fit_generator(myGene,steps_per_epoch=300,epochs=1,callbacks=[model_checkpoint])
  File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/training_generator.py", line 181, in fit_generator
    generator_output = next(output_generator)
  File "/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py", line 709, in get
    six.reraise(*sys.exc_info())
  File "/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py", line 685, in get
    inputs = self.queue.get(block=True).get()
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get
    raise self._value
MemoryError
Epoch 1/1
找到了30张属于1类的图片。
找到了30张属于1类的图片。
回溯(最近一次呼叫最后一次):
文件“main.py”,第18行,在
model.fit_生成器(myGene,每_epoch的步数=300,epoch=1,回调=[model_检查点])
文件“/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py”,第91行,在包装器中
返回函数(*args,**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/keras/engine/training.py”,第1418行,在fit_生成器中
初始_历元=初始_历元)
文件“/usr/local/lib/python2.7/dist packages/keras/engine/training\u generator.py”,第181行,在fit\u generator中
发电机输出=下一个(输出发电机)
get中的文件“/usr/local/lib/python2.7/dist packages/keras/utils/data_utils.py”,第709行
六、重放(*sys.exc_info())
get中的文件“/usr/local/lib/python2.7/dist packages/keras/utils/data_utils.py”,第685行
inputs=self.queue.get(block=True).get()
get中的文件“/usr/lib/python2.7/multiprocessing/pool.py”,第567行
提升自我价值
记忆者

您的机器似乎内存不足,无法同时存储所有阵列进行训练。尝试优化您的代码以保存数据数组,然后在需要时加载它们,这样您就不必将它们存储在RAM中