|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, хочу по интересоваться, использовали ли в своей практике какие-либо библиотеки по работе с разреженными матрицами? Если да, то что использовали и какие остались ощущения? Что порекомендуете? Акцент на том, что имеете опыт личного использования, в гугле я не забанен, какие примерно есть варианты в этой области уже смотрел, пока присматриваюсь либо к la4j, либо к апачевским реализациям. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 14:16 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir, А проблема в том чтобы хранить или обрабатывать? Просто не очень понял какие ещё библиотеки нужны. Структуру писали сами, обработка через любую "векторизацию". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 14:21 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
У меня есть макетный функционал, в основе которого лежат алгоритмы работы с матрицами, текущая реализация "в лоб" (матрица двумерный массив, честное перемножение за N^3 и т.д.), функционально все вышло то что нужно, но на более менее серьезном объеме с легкостью получится как минимум OutOfMemory, по своей природе матрицы очень разрежены. Желания вкладываться в самостоятельную имплементациею структур для хранения и нужные алгоритмы (в то же перемножение) особо нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 14:50 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir, Ну, я на Mahout когда-то смотрел. Но оно мне не сильно понравилось. Заточено всё под хадуп, когда мне эта распраделенность нафиг не упала. Алгоритмы были простые и на существующих объемах было проще на SQL посчитать, чем на Map/Reduce. Пара умножений на вектор и потом суммирование. Ерунда. Про OOME, я вообще не понял. Разреженые матрицы они же и хранятся совсем иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:04 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Использовал COLT . Но не для матриц. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:24 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Blazkowicz, в макете никак не учитывается, что они разреженные, создается двумерный массив и вперед на встречу к OOME, а чтобы такого не происходило, то как раз и нужно хранить правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:29 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir, Рекомендации? Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:34 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Blazkowicz, ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:38 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir, Просто любопытно чего вы там на этих матрицах считаете. И какие объемы. Потому как если объемы сурьезные, а математика - нет, тогда, есть смысл на Mahout сразу смотреть. А если наоборот - объемы средние, а математики много, то лучше брать мат. пакеты типа того же R и вызывать из Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:44 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Blazkowicz, никакого rocket science точно нет :-) Объемы маленькие до 10 000 и то это с запасом, но допустим мне надо 10 000, то это уже 10 000 * 10 000 * 4 байта и это будет 400 Мб, через чур накладно, в разреженной с легкостью уместилось бы в 1Мб. Математика тоже весьма не хитрая. А библиотеку смотрю, чтобы не заниматься велосипедостроением, но и так, чтобы можно было пользоваться, а не баги в библиотеке фиксить. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 15:56 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimirBlazkowicz, никакого rocket science точно нет :-) Объемы маленькие до 10 000 и то это с запасом, но допустим мне надо 10 000, то это уже 10 000 * 10 000 * 4 байта и это будет 400 Мб, через чур накладно, в разреженной с легкостью уместилось бы в 1Мб. Математика тоже весьма не хитрая. А библиотеку смотрю, чтобы не заниматься велосипедостроением, но и так, чтобы можно было пользоваться, а не баги в библиотеке фиксить. Для Java очень мало нормальной математики. Поэтому в большинстве случаев проще взять широкораспространенные алгоритмы и закодить реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 16:12 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir , если заведомо известно что ваши коэффициенты "скучились" возле диагонали и возле краёв то не составит большого труда самому закодить подобную матрицу. Возможно на некоторых тестах скорости она будет обгонять обобщённые варианты sparsed matrices. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2015, 18:14 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Всем спасибо, переписал с использованием la4j, пока доволен. Библиотечка хоть и совсем скудна на документацию, но достаточно интуитивно понятна, пользоваться приятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2015, 17:30 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
just_vladimir, я-бы взал 2 библиотеки и сравнил на скорость итератора. По всей матрице. И хотя-б 3 случая. Заполненная. Средне-заполненная. И очень редкая. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2015, 17:45 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
mayton, можно, но не вижу в этом большой потребности, API оказалось удобным, по алгоритмам все что мне нужно там есть, свою проблему не эффективности по памяти я снял, по CPU у меня очень огромный запас. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2015, 18:07 |
|
Разреженные матрицы
|
|||
---|---|---|---|
#18+
Прототип сжатой матрицы - время доступа к элементу log(n): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:33 |
|
|
start [/forum/topic.php?fid=59&msg=39125079&tid=2120559]: |
0ms |
get settings: |
26ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
321ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 753ms |
0 / 0 |