MemoryError: Невозможно выделить 3,78 ГБ для массива с формой (802, 842, 1502) и типом данных float32. - PullRequest
1 голос
/ 06 марта 2020

У меня есть результаты большой симуляции, которой я хочу манипулировать.

Теперь, похоже, мой компьютер может обрабатывать слишком много, так как python останавливается и говорит мне:

MemoryError: Unable to allocate 3.78 GiB for an array with shape (802, 842, 1502)

и тип данных float32.

Мне не удается изменить / proc / sys / vm / overcommit_memory, поскольку даже при использовании "sudo" разрешение отклоняется.

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

Скажем, массив называется A, я пытался:

A = np.float16(A)

Но, очевидно, чтобы сделать это, вы манипулируете A, который все еще находится в float32, и выдает ту же ошибку.

Так ... есть идеи получше?

...