2015-07-26 3 views
0

Я начинаю с Python, но я нахожусь на заключительной стадии проекта, над которым я работал в течение прошлого года, и мне нужна помощь на последнем этапе.Сохраните данные на диск, чтобы избежать повторных вычислений

При необходимости я отправлю свой код, хотя это действительно не актуально.

Вот моя проблема:

У меня есть база данных изображений, скажем, например, в 100 изображений. На каждом из этих изображений я запускаю алгоритм под названием ICA. Этот алгоритм очень тяжелый для вычисления, и каждый рисунок обычно занимает 7-10 секунд, поэтому 100 снимков могут занимать 700-1000 секунд, и это слишком долго ждать.

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

Есть ли способ сохранить данные на жесткий диск и извлечь их позднее?

Скажите, я вычислил ICA из 100 изображений, это берет навсегда, и я сохраняю его и закрываю свой компьютер. Теперь, когда я запускаю программу, я не хочу, чтобы она перепрограммировала ICA, я хочу, чтобы она использовала значения, которые я сохранил ранее.

Возможно ли такое в Python? если так - как?

+0

Возможный дубликат [Сохранение объекта (сохранение данных на Python)] (http://stackoverflow.com/questions/4529815/saving-an-object-data-persistence-in-python). Вы можете прочитать о Pickling в документах [здесь] (https://docs.python.org/2/library/pickle.html). Там есть целый раздел о сохранении данных, который вы можете проверить. – SuperBiasedMan

ответ

-1

Поскольку вы используете алгоритмы, основанные на вычислениях, я предполагаю, что вы используете Numpy. Если нет, вы should be.

Numpy имеет функцию numpy.save(), которая позволяет сохранять массивы в двоичном формате. Затем вы можете загрузить их с помощью numpy.load().

EDIT: Документы для вышеупомянутых функций можно найти here в разделе «Файлы NPZ».

+0

Я использую Numpy. По массивам вы также имеете в виду матрицы? Ill проверить документы –

+0

Да, он должен работать для массивов и матриц. – Kreger51

Смежные вопросы