def apply(self): filename = '%s_%s' % (self.type, self.target) cache = load_hickle_file( os.path.join(self.settings['cachedir'], filename)) if cache is not None: return cache data = self.read_raw_signal() if self.settings['dataset'] in ['CHBMIT', 'FB']: X, y = self.preprocess(data) elif self.settings['dataset'] in ['Kaggle2014Det']: X, y = self.preprocess_Kaggle2014Det(data) save_hickle_file(os.path.join(self.settings['cachedir'], filename), [X, y]) return X, y
def apply(self, save_STFT=False, dir=''): filename = '%s_%s' % (self.type, self.target) cache = load_hickle_file( os.path.join(self.settings['cachedir'] + '_ACS', filename)) if cache is not None: return cache data = self.read_raw_signal() if self.settings['dataset'] == 'Kaggle2014Pred': X, y = self.preprocess_Kaggle(data) else: X, y = self.preprocess(data) save_hickle_file( os.path.join(self.settings['cachedir'] + '_ACS', filename), [X, y]) return X, y
def apply(self, save_STFT=False, dir=''): def save_STFT_to_files(X): print('Start saving STFT to %s' % dir) pre = None # oversampling for GAN training ovl_pct = 0.1 # oversampling for GAN training if isinstance(X, list): index = 0 ovl_len = int(ovl_pct * X[0].shape[-2]) # oversampling for GAN training ovl_num = int(np.floor(1.0 / ovl_pct) - 1) # oversampling for GAN training for x in X: for i in range(x.shape[0]): fn = '%s_%s_%d_%d.npy' % (self.target, self.type, index, i) if self.settings['dataset'] in ['FB', 'CHBMIT']: x_ = x[i, :, :56, :112] elif self.settings['dataset'] == 'Kaggle2014Pred': if 'Dog' in self.target: x_ = x[i, :, :56, :96] elif 'Patient' in self.target: x_ = x[i, :, :112, :96] elif self.settings['dataset'] == 'EpilepsiaSurf': x_ = x[i, :, :, :] np.save(os.path.join(dir, fn), x_) # 2352, 1, 16, 59, 100 - Kaggle Dog # (567, 1, 15, 119, 100) - Kaggle Patient # 3020, 1, 6, 59, 114 - Freiburg # Generate overlapping samples for GAN if i > 0: for j in range(1, ovl_num + 1): fn = '%s_ovl_%s_%d_%d_%d.npy' % ( self.target, self.type, index, i, j) x_2 = np.concatenate((pre[:, :j * ovl_len, :], x_[:, j * ovl_len:, :]), axis=1) assert x_2.shape == x_.shape np.save(os.path.join(dir, fn), x_2) pre = x_ index += 1 else: ovl_len = int(ovl_pct * X.shape[-2]) # oversampling for GAN training ovl_num = np.floor( 1.0 / ovl_pct) - 1 # oversampling for GAN training for i in range(X.shape[0]): fn = '%s_%s_0_%d.npy' % (self.target, self.type, i) if self.settings['dataset'] in ['FB', 'CHBMIT']: x_ = X[i, :, :56, :112] elif self.settings['dataset'] == 'Kaggle2014Pred': if 'Dog' in self.target: x_ = X[i, :, :56, :96] elif 'Patient' in self.target: x_ = X[i, :, :112, :96] np.save(os.path.join(dir, fn), x_) # Generate overlapping samples for GAN if i > 0: for j in range(1, ovl_num + 1): fn = '%s_ovl_%s_%d_%d_%d.npy' % ( self.target, self.type, index, i, j) x_2 = np.concatenate( (pre[:, :j * ovl_len, :], x_[:, j * ovl_len:, :]), axis=-1) assert x_2.shape == x_.shape np.save(os.path.join(dir, fn), x_2) pre = x_ print('Finished saving STFT to %s' % dir) return None filename = '%s_%s' % (self.type, self.target) cache = load_hickle_file( os.path.join(self.settings['cachedir'], filename)) if cache is not None: if save_STFT: X, _ = cache return save_STFT_to_files(X) else: return cache data = self.read_raw_signal() if self.settings['dataset'] == 'Kaggle2014Pred': X, y = self.preprocess_Kaggle(data) else: X, y = self.preprocess(data) save_hickle_file(os.path.join(self.settings['cachedir'], filename), [X, y]) if save_STFT: return save_STFT_to_files(X) else: return X, y