Как уничтожить объекты Python и освободить памятьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как уничтожить объекты Python и освободить память

Сообщение Anonymous »

Я пытаюсь перебрать более 100 000 изображений, захватить некоторые функции изображения и сохранить полученный dataFrame на диске в виде файла рассола.
К сожалению, из-за ограничений оперативной памяти я вынужден разделить изображения на куски по 20 000 и выполнять над ними операции перед сохранением результатов на диск.
Написанный ниже код должен сохранять кадр данных результатов для 20 000 изображений перед запуском цикла обработки. следующие 20 000 изображений.
Однако это, похоже, не решает мою проблему, поскольку память не освобождается из ОЗУ в конце первого цикла for.
Итак, где-то при обработке 50-тысячной записи программа вылетает из-за ошибки нехватки памяти.
Я пробовал удалять объекты после их сохранения в диск и вызывает сборщик мусора, однако использование оперативной памяти, похоже, не снижается.
Что мне не хватает?
# file_list_1 contains 100,000 images
file_list_chunks = list(divide_chunks(file_list_1, 20000))
for count, f in enumerate(file_list_chunks):
# make the Pool of workers
pool = ThreadPool(64)
results = pool.map(get_image_features, f)
# close the pool and wait for the work to finish
list_a, list_b = zip(*results)
df = pd.DataFrame({'filename': list_a, 'image_features': list_b})
df.to_pickle("PATH_TO_FILE" + str(count) + ".pickle")
del list_a
del list_b
del df
gc.collect()
pool.close()
pool.join()
print("pool closed")


Подробнее здесь: https://stackoverflow.com/questions/561 ... -up-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»