在用fit_generator拟合keras模型时,如何解决“ MemoryError”问题?

时间:2019-08-11 18:08:36

标签: python-2.7 tensorflow keras google-cloud-platform

我正在训练Google Cloud Tensorflow VM实例上的Unet。当我运行fit_generator时,出现MemoryError。

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

body-parser:1.18.2
bootstrap:3.3.7
cfenv:1.0.4
cloudant:1.10.0
cookie-parser:1.4.3
express:4.13.4
express-async-handler:1.1.4
express-handlebars:3.0.0
express-session:1.15.6
express-ws:3.0.0
isomorphic-fetch:2.2.1
jquery:3.3.1
moment:2.20.1
morgan:1.9.1
multer:1.3.0
passport:0.3.2
passport-http:0.3.0
sha1:1.1.1
socket.io:2.0.4
vcap_services:0.3.4
watson-developer-cloud:2.42.0
xlsx:0.12.13

我希望模型能够训练,但是相反,我得到了带有以下Traceback的MemoryError

model = unet()
model_checkpoint = ModelCheckpoint('unet_membrane.hdf5', monitor='loss',verbose=1, save_best_only=True)
model.fit_generator(myGene,steps_per_epoch=300,epochs=1,callbacks=[model_checkpoint])

1 个答案:

答案 0 :(得分:1)

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