Сбой памяти при вычислении увеличения данных с помощью Python для глубокого обучения - PullRequest
0 голосов
/ 09 марта 2019

Я работаю над классификацией различных видов сигналов с глубоким обучением.У меня небольшой набор данных, и получение большего количества данных (сигналов) немного дороже.Идея состоит в том, чтобы сделать увеличение данных, и я использую код ниже, чтобы сделать это.Однако, по-видимому, 12 ГБ ОЗУ недостаточно для этого (с вводом (начальный размер набора данных) 1200), и машина в конечном итоге дает сбой.

Есть ли какие-либо идеи / предложения о том, как я могу улучшить этот код более удобным для памяти способом?

def sliding_window(data, labels, window_sz, n_hop, n_start=0, show_status=False):
    """    
    input: (array) data : matrix to be processed    
           (int)   window_sz : nb of samples to be used in the window    
           (int)   n_hop : size of jump between windows    
    output:(array) new_data : output matrix of size (None, window_sz, feature_dim)    
    """    
    flag = 0    
    for sample in range(data.shape[0]):    
        tmp = np.array(
            [data[sample, i:i + window_sz, :] for i in np.arange(n_start, data.shape[1] - window_sz + n_hop, n_hop)])
        tmp_lab = np.array([labels[sample] for i in np.arange(n_start, data.shape[1] - window_sz + n_hop, n_hop)])
        if sample % 100 == 0 and show_status == True:
            print("Sample " + str(sample) + "processed!\n")
        if flag == 0:
            new_data = tmp
            new_lab = tmp_lab
            flag = 1
        else:
            new_data = np.concatenate((new_data, tmp))
            new_lab = np.concatenate((new_lab, tmp_lab))
    return new_data, new_lab

, и вот как я его использую

x_augmented, y_augmented = sliding_window(data = X_train[:,:,:],
                                                 labels = y_train[:],
                                                 window_sz = 4 * fs,
                                                 n_hop = fs // 10,
                                                 n_start = fs * 1)

Спасибо большое!

...