У меня есть две матрицы - A 3033x3033, а X - 3033x20. Я бегу следующие строки (как это было предложено в the answer to another question I asked):NumPy tensordot MemoryError
n, d = X.shape
c = X.reshape(n, -1, d) - X.reshape(-1, n, d)
return np.tensordot(A.reshape(n, n, -1) * c, c, axes=[(0,1),(0,1)])
На последней строке, Python просто останавливается и говорит «MemoryError». Как я могу обойти это, либо изменив некоторые настройки на Python, либо выполнив эту операцию более эффективным с точки зрения памяти?
Какая '.shape' вы ожидаете результата? – farenorth
Кроме того, вы указали формы A и X перед манипуляцией в коде? Что такое 'n',' d'? Вы должны упростить свой код, чтобы мы могли легче помочь вам (например, помочь мне помочь). Разделите свою последнюю строку на несколько, например: 'in1 = A.reshape (n, n, -1) * c', затем выполните' np.tensordot (in1, c, axes = [(0,1), (0, 1)]) '. Я предполагаю, что ваша проблема возникает во второй части. Тогда вы можете просто указать размеры 'in1' и' c', а не заставлять меня выяснять, что происходит. – farenorth