Keras OOM on multiple model and del() doesn't work

Viewed 64

I'm trying to run multiple Keras model from functions but it gives OOM error my code looks like this :

def mainModel():

    trainX, testX, trainY, testY = train_test_split()

    evScoreVGG, imHolderVGG = runKerasVGGModel( train and test )
    evScoreResNet, imHolderResnet = runResnetKerasModel(train and test values)

def createKerasVGG19Model():
    base_model = VGG19( weights='imagenet',
                        include_top=False,
                        input_shape=(width, height,3),
                       )
    base_model.trainable = False

    model = Sequential([
        base_model,
        Flatten(),
        Dense(164, activation="softmax"),

    ])
    return model

    #The ResNet is the same with ResNet50V2 base model

def runKerasVGGModel(trainX,testX,trainY,testY,mode):
    modelKeras = createKerasVGG19Model()

    modelKeras.compile( foo )

    modelKeras.fit( foo )

    evScore = modelKeras.evaluate(testX, testY)

    predictedValue = modelKeras.predict(testX, mode)

    del(modelKeras)
    K.clear_session()

    return evScore

Code for running and creating Resnet is the same as the VGG model without any change. I didn't add for readability.

  • I tried writing del(model) at the end of the runKeras() as del(model)
  • I tried writing K.clear_session() at the end of the runKeras()
  • I tried writing K.clear_session() between the runKeras1() and runKeras2() inside the mainModel
0 Answers
Related