Для простого присвоения значений матрице на протяжении итераций объем ОЗУ превышает и компьютер зависает. Любая идея? Есть ли лучший способ сделать это? - PullRequest
0 голосов
/ 05 октября 2019

Сначала я инициализирую матрицу A с конечными размерами. Хотя я пытаюсь присвоить значения матрице A, как показано в коде, процесс занимает все больше и больше оперативной памяти. Я предполагаю, что это внутренне создает некоторые временные переменные и не освобождает память, когда присваивание выполняется за одну итерацию. Со временем процесс достигает предела моей оперативной памяти (то есть 32 ГБ), и мой компьютер начинает зависать. Кто-нибудь может прокомментировать эту проблему? Есть ли лучший способ выполнить следующую задачу?

import numpy as np

A = np.zeros((10000, 200, 3000))

for i in range(A.shape[0]):
    print(i)
    A[i,:,:] = np.random.rand(A.shape[1], A.shape[2])
...