Как очистить память Jupyter без перезагрузки ноутбука - PullRequest
1 голос
/ 05 апреля 2019

Я использую 3D сверточную нейронную сеть для своей диссертации и пытаюсь обучить сеть с вводом 256x256 изображений, 22 каналов, 5 изображений, используя скользящее окно 8x8 с увеличением данных вращения на 90 градусов.Таким образом, входной размер равен (262144,22,8,8,5).

В качестве входных данных для сети используются фрагменты большего изображения размером 10240x10240, поэтому мне необходимо несколько раз обучить модель, чтобы охватитьВесь мой набор данных.

Я работаю с 60 ГБ ОЗУ, и мой план будет следующим:

  1. Загрузка входного тензора одной плитки.

  2. Поезд модели

  3. Сохранение модели

  4. Очистка памяти Юпитера без выключения ноутбука

  5. Загрузка модели

  6. Загрузка входного тензора следующей плитки

  7. Продолжить обучение модели

  8. Сохранить модель

  9. Очистить память и повторить

Я не могу загрузить разные плитки подряд, или я получуMemoryError.

Я знаю, что использование "del tensor_name" фактически не удаляет выделенную память.

Также кажется, что использование% reset -f только очищает переменные и не очищаеточистить всю память.

1 Ответ

2 голосов
/ 08 мая 2019

Jupyter хорош для создания прототипов, но не годен для месяцев работы над одним файлом.

Когда мне нужно было начать применять свой код, я поместил свой код в классы ООП (объектно-ориентированного программирования) и использовал их в нескольких сценариях .py.

Наконец, чтобы взять огромный набор данных в качестве входных данных, мне нужно было создать собственный генератор Keras, унаследовав класс Sequential: https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly

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