def generate_train(self): '''Generate mini-batch data for training. Returns: batch_data_dict: dict containing audio_name, feature and target ''' batch_size = self.batch_size audio_indexes = np.array(self.train_audio_indexes) self.random_state.shuffle(audio_indexes) pointer = 0 while True: # Reset pointer if pointer >= len(audio_indexes): pointer = 0 self.random_state.shuffle(audio_indexes) # Get batch audio_indexes batch_audio_indexes = audio_indexes[pointer: pointer + batch_size] pointer += batch_size batch_data_dict = {} batch_data_dict['audio_name'] = \ self.data_dict['audio_name'][batch_audio_indexes] batch_feature = self.data_dict['feature'][batch_audio_indexes] batch_feature = self.transform(batch_feature) batch_data_dict['feature'] = batch_feature sparse_target = self.data_dict['target'][batch_audio_indexes] batch_data_dict['target'] = sparse_to_categorical( sparse_target, self.in_domain_classes_num) yield batch_data_dict
def generate_validate(self, data_type, source, max_iteration=None): '''Generate mini-batch data for training. Args: data_type: 'train' | 'validate' source: 'a' | 'b' | 'c' max_iteration: int, maximum iteration to validate to speed up validation Returns: batch_data_dict: dict containing audio_name, feature and target ''' batch_size = self.batch_size if data_type == 'train': audio_indexes = np.array(self.train_audio_indexes) elif data_type == 'validate': audio_indexes = np.array(self.validate_audio_indexes) else: raise Exception('Incorrect argument!') audio_indexes = self.get_source_indexes( audio_indexes, self.data_dict, source) iteration = 0 pointer = 0 while True: if iteration == max_iteration: break # Reset pointer if pointer >= len(audio_indexes): break # Get batch audio_indexes batch_audio_indexes = audio_indexes[pointer: pointer + batch_size] pointer += batch_size iteration += 1 batch_data_dict = {} batch_data_dict['audio_name'] = \ self.data_dict['audio_name'][batch_audio_indexes] batch_feature = self.data_dict['feature'][batch_audio_indexes] batch_feature = self.transform(batch_feature) batch_data_dict['feature'] = batch_feature sparse_target = self.data_dict['target'][batch_audio_indexes] batch_data_dict['target'] = sparse_to_categorical( sparse_target, self.all_classes_num) yield batch_data_dict
def generate_train(self): '''Generate mini-batch data for training. Returns: batch_data_dict: dict containing audio_name, feature and target ''' while True: # Reset pointer if self.pointer >= len(self.train_audio_indexes): self.pointer = 0 self.random_state.shuffle(self.train_audio_indexes) # Get batch audio_indexes batch_audio_indexes = self.train_audio_indexes[self.pointer:self. pointer + self.batch_size] self.pointer += self.batch_size batch_data_dict = {} batch_data_dict['audio_name'] = \ self.data_dict['audio_name'][batch_audio_indexes] batch_feature = self.data_dict['feature'][batch_audio_indexes] batch_feature = self.transform(batch_feature) batch_data_dict['feature'] = batch_feature batch_feature_gamm = self.data_dict['feature_gamm'][ batch_audio_indexes] batch_feature_gamm = self.transform_gamm(batch_feature_gamm) batch_data_dict['feature_gamm'] = batch_feature_gamm batch_feature_mfcc = self.data_dict['feature_mfcc'][ batch_audio_indexes] batch_feature_mfcc = self.transform_mfcc(batch_feature_mfcc) batch_data_dict['feature_mfcc'] = batch_feature_mfcc batch_feature_panns = self.data_dict['feature_panns'][ batch_audio_indexes] batch_feature_panns = self.transform_panns(batch_feature_panns) batch_data_dict['feature_panns'] = batch_feature_panns sparse_target = self.data_dict['target'][batch_audio_indexes] batch_data_dict['target'] = sparse_to_categorical( sparse_target, self.in_domain_classes_num) yield batch_data_dict
def generate_train(self): '''Generate mini-batch data for training. Returns: batch_data_dict: dict containing audio_name, feature and target ''' batch_size = self.batch_size audio_indexes = np.array(self.evaluation_audio_indexes) self.random_state.shuffle(audio_indexes) pointer = 0 while True: # Reset pointer if pointer >= len(audio_indexes): pointer = 0 self.random_state.shuffle(audio_indexes) # Get batch audio_indexes batch_audio_indexes = audio_indexes[pointer:pointer + batch_size] pointer += batch_size batch_data_dict = {} batch_data_dict_left = {} batch_data_dict_right = {} batch_data_dict_side = {} batch_data_dict_harmonic = {} batch_data_dict_percussive = {} batch_data_dict['audio_name'] = \ self.data_dict['audio_name'][batch_audio_indexes] batch_data_dict_left['audio_name'] = \ self.data_dict_left['audio_name'][batch_audio_indexes] batch_data_dict_right['audio_name'] = \ self.data_dict_right['audio_name'][batch_audio_indexes] batch_data_dict_side['audio_name'] = \ self.data_dict_side['audio_name'][batch_audio_indexes] batch_data_dict_harmonic['audio_name'] = \ self.data_dict_harmonic['audio_name'][batch_audio_indexes] batch_data_dict_percussive['audio_name'] = \ self.data_dict_percussive['audio_name'][batch_audio_indexes] batch_feature = self.data_dict['feature'][batch_audio_indexes] batch_feature = self.transform(batch_feature) batch_data_dict['feature'] = batch_feature batch_feature_left = self.data_dict_left['feature_left'][ batch_audio_indexes] batch_feature_left = self.transform_left(batch_feature_left) batch_data_dict_left['feature_left'] = batch_feature_left batch_feature_right = self.data_dict_right['feature_right'][ batch_audio_indexes] batch_feature_right = self.transform_right(batch_feature_right) batch_data_dict_right['feature_right'] = batch_feature_right batch_feature_side = self.data_dict_side['feature_side'][ batch_audio_indexes] batch_feature_side = self.transform_side(batch_feature_side) batch_data_dict_side['feature_side'] = batch_feature_side batch_feature_harmonic = self.data_dict_harmonic[ 'feature_harmonic'][batch_audio_indexes] batch_feature_harmonic = self.transform_harmonic( batch_feature_harmonic) batch_data_dict_harmonic[ 'feature_harmonic'] = batch_feature_harmonic batch_feature_percussive = self.data_dict_percussive[ 'feature_percussive'][batch_audio_indexes] batch_feature_percussive = self.transform_percussive( batch_feature_percussive) batch_data_dict_percussive[ 'feature_percussive'] = batch_feature_percussive sparse_target = self.data_dict['target'][batch_audio_indexes] batch_data_dict['target'] = sparse_to_categorical( sparse_target, self.in_domain_classes_num) yield batch_data_dict, batch_data_dict_left, batch_data_dict_right, batch_data_dict_side, batch_data_dict_harmonic, batch_data_dict_percussive