|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|||||||||||
np.array большое потребление памяти04.04.2023, 11:59. Показов 2886. Ответов 25
кусок данных беру из бд напрямую в panda.dataframe делаю пред обработку и маленькими частями запихиваю в list
Для tensorflow нужно чтобы данные были в numpy Я и запихиваю всё это в
10% выжирает около 40 гигов все данные входят в диапазон от 0 до 1 Есть ли способ уменьшить массив? float16 ситуацию не меняет.
0
|
|||||||||||
| 04.04.2023, 11:59 | |
|
Ответы с готовыми решениями:
25
Как уменьшить потребление памяти?
Большое потребление памяти приложением |
|
Модератор
|
||||
| 04.04.2023, 12:20 | ||||
|
Ты понимаешь что вообще делаешь в программе? На этапе подготовки, ты уже занял 15гб места в пустую. Добавлено через 3 минуты Тут либо данные подтягивать ленивым способом, либо не создавать кучу не нужных переменных и держать кулачки чтоб тебе хватило места.
0
|
||||
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|
| 04.04.2023, 13:09 [ТС] | |
|
Fudthhh, Не совсем так pandas Я использую только для предобработки данных. В цикле он обновляется больше 2000 раз и можно просто пренебречь. np после записи массива занимает больше 40 гигов. это без учёта предыдущих данных. Я просто не понимаю почему np.array занимает в 3.5 раза больше памяти. если бы в 2-а раза вопросов бы не возникло.
Добавлено через 4 минуты Fudthhh, Вполне возможно что надо сохранять не в list а в pandas.datafreme и после этого преобразовывать. Может np создаёт индексы вдоль и поперёк и можно их как то отключить Я не нашёл не чего в интернете.
0
|
|
|
Модератор
|
|||
| 04.04.2023, 13:35 | |||
|
А теперь посчитай: 4974910 * 256 * 91 * 2 = ?
0
|
|||
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|||||||||||||||||||||
| 04.04.2023, 13:36 | |||||||||||||||||||||
|
Вообще-то копирование DataFrame в массив numpy лучше делать вот так:
Даже в последнем случае оказывается, что роста объема практически нет. Легкий эксперимент:
2
|
|||||||||||||||||||||
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|
| 04.04.2023, 13:55 [ТС] | |
|
passant, Значит надо заполнять в pandas? Я почему-то изначально решил заполнять в list Сегодня протестировать не успею ну если что отпишусь завтра.
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|
| 04.04.2023, 14:33 | |
|
Что значит "надо заполнять в pandas?". Я не говорил ни про "надо", ни про pandas. Я просто показал, как надо обращаться с памятью. Ну, как минимум - из pandas перегонять прямо в numpy, а не через список. А все остальное - использование сначала Pandas, потом numpy - это ваше личное решение.
0
|
|
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
||
| 04.04.2023, 14:40 [ТС] | ||
|
passant,
Я без каких то претензий говорил. Извините если чем то обидел.
0
|
||
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|
| 04.04.2023, 15:00 | |
|
Этой фразой я говорю, что если у вас есть DataFrame (почему он у вас есть - я не знаю, это вы так решили) и него скопировать в numpy (опять таки, это вы так решили), то делать это лучше не через первую перегонку в список - с потерей памяти, вторую перегонку в массив - с еще одной потерей памяти, а напрямую, при которой память дополнительно вообще практически не расходуется.
0
|
|
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|
| 04.04.2023, 15:24 [ТС] | |
|
passant, dataframe мне нужен для быстрой предобработки всего фрейма есть лямбда которая скейлит одну строку датафрейма. Питоровскими методами это занимает секунд 20 а в датафрейме секунду на все строки. np с многомерными массивами работает быстрее + reshape. Я почитаю как дозаписывать np.array но на сколько Я помню он выделяет память на оба массива копирует всё это добро и удаляет старый массив.
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
||
| 04.04.2023, 16:00 | ||
|
0
|
||
| 04.04.2023, 16:11 | |
|
Не по теме: passant, проблема xy.
0
|
|
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|
| 04.04.2023, 16:28 [ТС] | |
|
passant, Да Я это понимаю что tuple не любит добавлений из за чего он быстрее и меньше весит чем list. Вернёмся к началу разговора Я понимаю что python list имеет большой объём из за того что туда можно записать str int float и всё это в одном списке. Как получается что создание стандартизированного float32 занимает больше места в памяти чем list питора? Может быть из за того что создаётся из листа он больше памяти занимает? Я не знаю и не где такой информации не нашёл.
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
||||||||||||||
| 04.04.2023, 18:03 | ||||||||||||||
|
Добавлено через 32 минуты И по ходу. tuple - не "не любит" дополнения. Он их просто на дух не переносит, т.е. прямо и безоговорочно ЗАПРЕЩАЕТ!
Что такое "стандартизированное float32" для меня вообще осталось загадкой.
0
|
||||||||||||||
| 04.04.2023, 18:22 | |
|
Не по теме: passant, мне кажется он не понимает что коллекция из 4974910 * 256 * 91 элементов, будет весить в любом случае очень много, если загонять ее прямиком в память. Скорее всего это обучающий датасет, и он не понимает как реализовать ленивое чтение чтобы тренировать свою модель.
0
|
|
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|||
| 04.04.2023, 18:28 [ТС] | |||
|
passant,
Вы ведёте себя как ребёнок. Если не можете ответить можете перестать писать чушь? Добавлено через 5 минут Fudthhh, Я всё понимаю и данные для моего датасета избыточны. Я не понимаю как они помещаются в list python и не помещаются в np для меня это загадка. И Я пришёл узнать мнение умных людей.
0
|
|||
|
Модератор
|
|||||||||||||
| 04.04.2023, 18:56 | |||||||||||||
|
Snowman8526, сгенирируй мне массив такого размера 4974910 * 256 * 91 не используя numpy
Добавлено через 37 секунд Добавлено через 2 минуты Добавлено через 11 минут
Если тебе не ясно, то вот держи, читай и просвещайся: https://svn.python.org/project... iew=markup
1
|
|||||||||||||
|
6 / 6 / 1
Регистрация: 26.09.2017
Сообщений: 68
|
|
| 04.04.2023, 23:16 [ТС] | |
|
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|||
| 05.04.2023, 10:37 | |||
|
Чего?????
Про tuple, который у вас откуда-то по дороге возник я вообще молчу. Не нравятся мои ответы и пояснения, не можете их "переварить" - продолжайте упражняться в изобретении терминов и решении проблемы XY самостоятельно. Мне стало не интересно при таком вашем подходе вести дальнейший диалог.
0
|
|||
|
Модератор
|
|
| 05.04.2023, 11:07 | |
|
Snowman8526, покажи код инициализации X_train
0
|
|
| 05.04.2023, 11:07 | |
|
Помогаю со студенческими работами здесь
20
Большое потребление памяти PostgreSQL Большое потребление памяти с использованием assimp opengl Большое потребление памяти при вызове метода nginx+php-fpm debian - большое потребление памяти Слишком большое потребление оперативной памяти в простом приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|