@haskellru

Страница 249 из 1551
Maks
14.04.2017
11:53:00
если реально есть такая потребность вероятно стоит арендоавть ненадолго сервер

Дмитрий
14.04.2017
11:54:26
Вероятно, можно не держать в памяти сразу все данные

Maks
14.04.2017
11:55:40
8 бит подразумевал. допустим ты сможешь корректно написать алг испольузуя на элемент куба 1 бит, получится 20гб по озу, но если сохранить вывод то все равно получится много больше

Google
Maks
14.04.2017
11:55:54
считай, в общем

Kit
14.04.2017
11:56:01
Вероятно, можно не держать в памяти сразу все данные
Тут может я архитектуру программы не верную выбрал. По этому кубу постоянно идут вычисления. Для этого и создавал его, что бы к нему обращаться а не вычислять.

Alexander
14.04.2017
12:00:35
@newrlan нету Int8

Yurii
14.04.2017
12:00:45
куб 2 x 1000 x 1000 x 10000 элементов (это 2* 10^10) * на размер Boolean (пусть 1 Байт) делим на 1024 (в МБ) и ещё на 1024 (ГБ) = 19073 ГБ (где я ошибся?)

Kit
14.04.2017
12:01:39
@newrlan нету Int8
в смысле я не правильно тип данных назвал?

Alexander
14.04.2017
12:02:09
ну есть но он тоже размер поинтера жрёт

можно в принципе Storable.Vector

Yurii
14.04.2017
12:03:11
да

Maks
14.04.2017
12:03:14
ну, я знаю что не десятичное, но я про порядок

Yurii
14.04.2017
12:03:19
кило забыл

тогда "всего" 74 ГБ нужно, чтобы эту штуку в памяти держать

Google
Kit
14.04.2017
12:04:19
можно в принципе Storable.Vector
а там можно битами читать?

Vasiliy
14.04.2017
12:04:34
если значения 1 или 0, можно на каждое выделить один бит, 2^35 - это 34359738368, хватает

2^35 битов = 2^32 байт = 4 гигабайта

Alexander
14.04.2017
12:04:59
нет, но можно сделать простую обёртку

Alexander
14.04.2017
12:05:34
Data.Bits + Data.Ix + вектор

Kit
14.04.2017
12:07:57
Data.Bits + Data.Ix + вектор
думаю, это решение пока реальнее всего

Alexander
14.04.2017
12:08:17
bitset вообще были какие-то разной степени готовности

Maks
14.04.2017
12:08:52
думаю, это решение пока реальнее всего
ну на твоей системе с 4гб всего это все равно не сыграет, так что смотри на vps

Kit
14.04.2017
12:09:43
bitset вообще были какие-то разной степени готовности
я искал не старательно конечно, но на первый взгляд у них у все одна проблема -- документация

Alexander
14.04.2017
12:10:00
там есть вкладка sources

;)

сначала делаешь на data BitSet и становится почти все понятно

Kit
14.04.2017
12:11:32
ну на твоей системе с 4гб всего это все равно не сыграет, так что смотри на vps
ну я решил отказаться от этого куба, придется пересчитывать все на каждой итерации но это сейчас реальнее

Kit
14.04.2017
12:13:09
Kirill
14.04.2017
12:15:12
ну я решил отказаться от этого куба, придется пересчитывать все на каждой итерации но это сейчас реальнее
а если сжимать и распаковывать данные когда нужны определённые индексы?

Kit
14.04.2017
12:17:29
быстрее вычислить ячейку

Yurii
14.04.2017
12:18:02
а если совсем извратиться и какой-нибудь mysql прикрутить для хранения этого многомерного массива?

Maks
14.04.2017
12:18:57
а если совсем извратиться и какой-нибудь mysql прикрутить для хранения этого многомерного массива?
если ко всем элементам ему придется обратиться, он там не к следующему году насчитает7

Google
Kit
14.04.2017
12:20:38
да, там дальше надо одну размерность умножить на коэффициенты, сложить ее, а потом еще и argmin найти по основанию

Yurii
14.04.2017
12:27:06
массив 2 x 10^3 x 10^3 x 10^4 и если мы делаем 10^4 записей по чему-то, что хранит в себе 2 х 10^3 х 10^3 т.е. (2х10^6) (а это, по идее, уже проще)

Дмитрий
14.04.2017
12:27:24
да, там дальше надо одну размерность умножить на коэффициенты, сложить ее, а потом еще и argmin найти по основанию
Полистай вычмат, я уверен, есть какие-нибудь способы считать это как-то иначе

Kit
14.04.2017
12:29:13
хотя, можно разреженные матрицы прикрутить... спасибо за толчок

Yurii
14.04.2017
12:32:29
redis хотя бы
http://eax.me/redis/ Redis умеет сохранять данные на диск // прикольно

Alexander
14.04.2017
12:32:34
а тут крото спросил какая задача?

Kit
14.04.2017
12:33:02
Это AdaBoost

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

Evgeny
14.04.2017
12:39:40
Привет всем. Я попробовал переписать https://wiki.haskell.org/Examples/Random_list на Sequence: http://lpaste.net/354498 Вроде как всё тривиально, но код после компиляции сваливается в бесконечный цикл

Думал, проблема с lazy , попробовал evaluate, но не помогло

Что там не так может быть?

Vasiliy
14.04.2017
12:50:00
проблема с ленивостью, да, точнее, с её отсутствием

sequence - оно finite и strict, бесконечных сиквенсов не бывает

в документации по unfoldr написано: WARNING: If the number of generated elements is infinite, this method will not terminate.

Evgeny
14.04.2017
12:51:39
ага, но я применяю take

Ок, в целом, понял, куда рыть, спасибо.

Vasiliy
14.04.2017
12:53:03
это не важно, он всё равно пытается создать весь sequence

Alexander
14.04.2017
15:58:18
но зачем это переписывать на sequence?!

Google
Evgeny
14.04.2017
16:31:35
Это просто кусок кода, разобравшись с которым, смогу использовать в более жизненных приложениях. Основная цель этого всего — это уход от List в сторону потенциально более шустрых типов.

Alexander
14.04.2017
18:14:49
но в данном случае это разучивание, т.к. именно в этом случае список это самая правильная структура

а последовательность делается как Seq.fromList $ take n $ mkList

и это будет эффективнее, чем если там поменять список на sequence

Evgeny просто идея в том, что благодаря list fusion список вообще строиться не будет

ну и sequence далеко не всегда эффективнее списка, т.к. структура сложнее

я понимаю ещё вектор генерить, хотя там тот же самый fromList или fromListN эффективнее всего

Evgeny
14.04.2017
20:14:18
Понял, спасибо.

Получается, что структуры из Data.… выгоднее брать только тогда, когда надо обрабатывать что-то более-менее сложное, например, Map для словарей и прочее в том же духе

Alexander
14.04.2017
20:16:28
зависит ли задачи

что стоит помнить что стоит разделять control и data structures

control определяют выполнение программы

data то что хранишь используешь

есть которые и те и другие хорошие например вектора

Evgeny
14.04.2017
20:17:46
Но в большинстве случаев, как понимаю, control чем проще, тем лучше

а data в зависимости от задачи

Alexander
14.04.2017
20:17:56
для тех где структура будет храниться в памяти и к ней запросы - хорошо бы иметь с локкльносттю хорошей

control они могут быть ленивыми и с плохой локкльностью, если они не строятся в памяти и фьюзятся - то все хорошо

ну а так нужно смотреть какие операции над структурой выполняются и выбирать

хорошие определения control и data структур и интуицию дать не могу, к сожалению

Google
Evgeny
14.04.2017
20:20:20
Это-то понятно . :) И так помог, спасибо.

А то удивляло повсеместное fromList и аналоги

Dmitry
16.04.2017
07:45:38
лайфак. лекции с степика становятся более лучшими, если смотреть на скорости 1.25

Dmitry
16.04.2017
07:48:11
ну там уже голос какой-то несерьезный получается. подрывает.

Quet
16.04.2017
07:49:16
а ты в этих лекциях что-то новое узнал?

Dmitry
16.04.2017
07:50:11
мне надо вокабуляр вырабатывать.

а то я как собака - все понимаю, а объяснять не могу

это проблема

Quet
16.04.2017
07:51:03
это в каких темах? не во всех же

Dmitry
16.04.2017
07:51:16
ну и когда начнется всякий MonadBaseControl возможно узнаю

typelevel там вроде тоже долже быть

Quet
16.04.2017
07:51:36
а там и такое есть?

я думал там обычными монадами все заканчивается

Dmitry
16.04.2017
07:52:28
вот это всё полезно 3.1 Монада Except Lesson by Денис Москвин 0 / 12 3.2 Монада Cont Lesson by Денис Москвин 0 / 11 3.3 Трансформеры монад Lesson by Денис Москвин 0 / 15 3.4 Трансформер ReaderT

трансформеры всегда полезны, а то их все тупо копипастят обычно

что=то не вижу содержания всего курса, но вроде кто-то мне говорил, что по слухам там должен быть typelevel

Страница 249 из 1551