У меня ошибка памяти в следующей строке -
Z = np.zeros((m, n_H, n_W, n_C))
ценности
m = 982, n_H = 400, n_W = 400, n_C = 3
Пожалуйста помоги. Вот код, над которым я работаю -
def conv_forw(A_prev, W, b, hparameters):
(m, n_H_prev, n_W_prev, n_C_prev) = A_prev.shape
(f, f, n_C_prev, n_C) = W.shape
stride = hparameters['stride']
pad = hparameters['pad']
n_H = int((n_H_prev - f + 2 * pad) / stride) + 1
n_W = int((n_W_prev - f + 2 * pad) / stride) + 1
Z = np.zeros((m, n_H, n_W, n_C))
A_prev_pad = zero_pad(A_prev, pad)
for i in range(m):
a_prev_pad = A_prev_pad[i]
for h in range(n_H):
for w in range(n_W):
for c in range(n_C):
vert_start = h * stride
vert_end = vert_start + f
horiz_start = w * stride
horiz_end = horiz_start + f
a_slice_prev = a_prev_pad[vert_start:vert_end, horiz_start:horiz_end, :]
Z[i, h, w, c] = conv_single_layer(a_slice_prev, W[...,c], b[...,c])
assert(Z.shape == (m, n_H, n_W, n_C))
cache = (A_prev, W, b, hparameters)
return Z, cache
Вот ошибка -
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-12-346685ab9b7c> in <module>()
----> 1 (Z1, cache1) = conv_forw(X, W, b, hparameters)
<ipython-input-4-64ab3cc0c83f> in conv_forw(A_prev, W, b, hparameters)
6 n_H = int((n_H_prev - f + 2 * pad) / stride) + 1
7 n_W = int((n_W_prev - f + 2 * pad) / stride) + 1
----> 8 Z = np.zeros((m, n_H, n_W, n_C))
9 A_prev_pad = zero_pad(A_prev, pad)
10
MemoryError:
Не могли бы вы вставить фактическую ошибку, которую вы видите? Кроме того, сколько у вас памяти?
Когда я использую функцию в следующей строке (Z1, cache1) = conv_forw(X, W, b, hparameters), у меня возникают ошибки.
Добавлена рассматриваемая ошибка
@RishabhKumar, пожалуйста, вставьте его в вопрос о форматировании новой строки ... Это не читается так
@ M.Volf добавил рассматриваемую ошибку
@lxop У меня 8 ГБ ОЗУ
Вы пропустили конец отчета об ошибке
@lxop вот и вся ошибка






У вас заканчивается память, потому что вы создаете массив из 982 массивов, каждый из которых содержит 400 массивов, каждый из которых содержит 400 массивов, каждый из которых содержит 3 нуля. Это 471360000 полей.
Ну, у меня нет опыта работы с numpy (я только что нашел документы numpy.zeroes), и я действительно не понимаю, что делает ваш код.
Нет ошибок в Python 3.7, numpy 1.15.4