Если файл Dill слишком велик для оперативной памяти, есть ли другой способ его загрузки

Если файл укропа слишком велик для оперативной памяти, можно ли загрузить его альтернативным способом. Например, python3 выдает ошибки памяти, когда я загружаю сериализованный объект размером около 1,2 ГБ.

file = open('SerializedData.pkl', 'rb')
data = dill.load(file)

Это не пройдет, потому что оперативной памяти слишком мало. Однако можно ли загрузить его по-другому, чтобы я извлекал данные, не перегружая оперативную память?


person Troll_Hunter    schedule 08.09.2015    source источник
comment
Загрузить в где? БАРАН? Увидеть проблему...   -  person Boris the Spider    schedule 08.09.2015
comment
Если у вас есть один большой объект, как следует из вашего вопроса, я не думаю, что вы можете с этим поделать. Хотя вы можете попробовать увеличить размер подкачки и молиться, чтобы ваш скрипт не начал слишком сильно тормозить.   -  person Cristian Ciupitu    schedule 08.09.2015
comment
Это также может быть ошибка укропа или cPickle, например one. Дополнение к предыдущему комментарию: если вы работаете в Unix-подобной системе, вам также может потребоваться увеличить ulimits.   -  person Cristian Ciupitu    schedule 08.09.2015
comment
Связано: Файл рассола слишком велик для загрузки   -  person Cristian Ciupitu    schedule 09.09.2015
comment
comment
Я dill автор. Это зависит от того, что вы пытаетесь загрузить. Если вы сериализуете данные, можно использовать сжатый или сокращенный формат. Например, если это numpy.ndarray, вы можете использовать сериализацию numpy. С dill у вас есть несколько настроек, таких как byref и recurse, которые могут изменить размер маринованного. Однако, если вы хотите замариновать данные, я бы проверил, имеет ли объект данных предпочтительный метод сериализации. Тем не менее, для уже построенного рассола, я думаю, вы в значительной степени облажались.   -  person Mike McKerns    schedule 09.09.2015