#python #python-3.x #numpy #memory #data-science
Вопрос:
В настоящее время я пытаюсь создать elm , используя код отсюда, однако проблема, с которой я сталкиваюсь, не относится конкретно к elm: при запуске строки
X_train = scaler.fit_transform(train.values[:, 1:])
используя sklearn MinMaxScaler, я получаю следующую ошибку:
numpy.core._exceptions.MemoryError: Unable to allocate 359. MiB for an array with shape (60000, 784) and data type float64
Это говорит мне, что он не может выделить 359. MiB для этой относительно небольшой матрицы. Строки перед этим предназначены только для дополнительной настройки, как в примере по ссылке, поэтому ничто не должно превышать использование памяти. У меня много оперативной памяти (16 ГБ, около 10 ГБ не используется при запуске кода), поэтому я не понимаю, что происходит. Я предполагаю, что каким-то образом запрещено использовать больше оперативной памяти, но я не знаю, почему и что с этим делать.
Я запускаю код в Windows 10 без виртуальной машины. Как использование консоли, так и запуск ее в PyCharm приводят к этой ошибке.
Есть какие-нибудь идеи, в чем может быть проблема?
Комментарии:
1. Для этого вы должны использовать 64-разрядный Python; вы проверили, что используете именно его, а не 32-разрядную версию?
2. Большое спасибо. Я чувствую себя глупо, но я как-то использовал более старую установку 32-битного python и не думал об этом. (Должен ли я удалить вопрос сейчас или как-то закрыть его? Я новичок в публикациях)
3. Если вы хотите, вы можете опубликовать ответ на свое собственное сообщение и принять его, чтобы другие могли найти это решение в будущем.
Ответ №1:
64-разрядный Python
(См. Комментарии под вопросом)
Ответ заключается в том, что у меня был 32-разрядный интерпретатор python как на моем пути, так и в конфигурации запуска PyCharm. Изменение этого на 64-разрядную версию исправило это, так что это была меньшая проблема с нехваткой памяти, чем использование float64 с 32-разрядным интерпретатором.