Последовательная установка нескольких моделей Keras приводит к появлению GPU OOM - PullRequest
1 голос
/ 04 мая 2020

Я хочу установить и сохранить три модели последовательно на одних и тех же данных (набор NIH-Chest - https://www.nih.gov/news-events/news-releases/nih-clinical-center-provides-one-largest-publicly-available-chest-x-ray-datasets-scientific-community). Хотя я могу сделать это отдельно, мне интересно, могу ли я сделать это из списка (см. Код ниже). Однако в этот момент это приводит к насыщению памяти графического процессора и, как следствие, к ошибке OOM. Это вызвано тем, что набор данных не сбрасывается из памяти графического процессора и пытается перезагрузить его также для второй и третьей подгонки.

Все решения, касающиеся очистки памяти графического процессора, включают либо закрытие Cuda, либо перезапуск Keras, либо Ядро ... которое по причинам подходит для удаления (нет ничего удивительного).

Мне интересно, возможно ли совместить несколько моделей последовательно из списка, или я должен просто go вернуться к основам и соответствовать и сохранить каждую модель отдельно?

Небольшой фрагмент кода (для быстрого выполнения теста> small # epochs and validation);

epochs = 2
i = 0
for model in model_list:
    i += 1
    model.fit_generator(train_data, epochs = epochs, validation_data = validation_data, validation_steps = 100)
    model.save('model_{}'.format(i))

1 Ответ

1 голос
/ 05 мая 2020

Вы можете использовать del(model) в конце l oop. Это приведет к удалению памяти модели, которую вы не собираетесь использовать позже.

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