не удалось разрешить ошибку памяти в нули Python - PullRequest
0 голосов
/ 09 декабря 2018

Я получаю ошибку памяти в следующей строке -

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:

1 Ответ

0 голосов
/ 09 декабря 2018

Вам не хватает памяти, потому что вы создаете массив из 982 массивов, каждый из которых содержит 400 массивов, каждый из которых содержит 400 массивов, каждый из которых содержит 3 нуля.Это 471360000 полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...