Как осуществлять операции с большими матрицами?

Несколько общий вопрос.
В каком виде работают с большими матрицами?
Под словом большие подразумеваются матрицы, которые не помещаются в оперативную память.

Как хранить матрицы? Есть, например, формат HDF5(более продвинутое PyTables для python).
В идеале хотелось бы, чтобы строки матрицы можно было бы добавлять(т.е. было бы что то типа resize/append)

Я знаю, что в python и matlab есть свои варианты memory-mapped file.
В R есть тоже есть свои пакеты для работы с большими данными.

Понятно, что, скорее всего, можно было бы для каждого конкретного случая подобрать отдельный специализированный умный алгоритм(out-of-core), но хотелось бы, чтобы матрица хранилась на диске и к ней был прозрачный доступ, как к обычной матрице в памяти. Получается некоторая аналогия ram<->cache ram<->hdd.

Есть еще hadoop (mapreduce), но это уже несколько из другой области.
  • Вопрос задан
  • 3385 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alec_kalinin
Вот здесь описан интересный вариант решения задачи на Python:
matthewrocklin.com/blog/work/2015/01/14/Towards-OO...
Ответ написан
Комментировать
@lightcaster
Может быть, вы неверно ставите задачу? Обычно поместить матрицу в память не является проблемой. Если все же проблема - работают minibatch-методы, либо что-то вроде online-обучения, где данные могут скармливаться в модель последовательно небольшими кусками.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы