Загрузка нескольких моделей последовательно приводит к краху Python - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь загрузить несколько моделей последовательно для некоторых проверочных тестов, но использование K.clear_session() вызывает сбой Python в Windows.

"Python не работает / вызывает" ошибка Windows.

Если я не использую K.clear_session(), я сталкиваюсь с ошибкой памяти, где я предполагаю, что графики продолжают складываться, и каждая модель постепенно загружается.

Яздесь (ниже) приводятся предложения по использованию K.clear_session(), но Python продолжает падать (я не получаю ошибки, просто сбой)

Чрезвычайно медленная загрузка модели с помощью keras

Вот мой код:

>>> print(keras.__version__)
2.2.4
>>> import tensorflow as tf
>>> tf.__version__
'1.8.0'
>>> 

Windows 7



config = tf.ConfigProto()

# Don't pre-allocate memory; allocate as-needed
config.gpu_options.allow_growth = True

# Only allow a total of half the GPU memory to be allocated
config.gpu_options.per_process_gpu_memory_fraction = 0.8

# Create a session with the above options specified.
k.tensorflow_backend.set_session(tf.Session(config=config))



def evaluate_models_2(models_path_dir,):

    models_paths = [os.path.join(models_path_dir, model) for model in os.listdir(models_path_dir) if model.endswith(".hdf5")]
    models_pairs = get_model_key(models_paths, model_keys, MODEL_KEY)
    valid_gen = double_valid_generator()
    #global model_paths
    for num,model_pair in enumerate(models_pairs):
        model_path,model_key = model_pair
        print(num, ": ", model_path)
        evaluate_validation_data_2(model_path, model_key, generator = valid_gen)


def evaluate_validation_data_2(model_path,model_key, generator = None, show_mistakes = False):

    if generator == None:
        valid_gen = double_valid_generator()
    else:
        valid_gen = generator
    #load data generator
    print("about to load model")
    model = load_model_max_layer(model_path)
    #evaluate and then clear session
    print(model.evaluate_generator(valid_gen, steps =10))
    k.clear_session()

Кажется, у меня не запущены другие сеансы Python.

Если я удаляю K.clear_session (), pythonне вылетает Однако, как указывалось ранее, модели загружаются дольше и дольше, и мне нужно пройти около 200 моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...