Пример #1
0
 def train_left_fit_by_generator(self):
     self.trn_gen = generator.DataGenerator(self.train_x, self.train_y,
                                            **self.params)
     model = self.model
     accept_cur = False
     cur_epoch = self.decide_epoch_curround()
     if self.fullvalid_stage:
         m_history = model.fit_generator(
             self.trn_gen,
             steps_per_epoch=int(
                 len(self.train_x) // self.params["batch_size"]),
             validation_data=self.g_valid_gen,
             epochs=cur_epoch,
             max_queue_size=10,
             callbacks=self.callbacks,
             use_multiprocessing=False,
             workers=1,
             verbose=ThinRes34Config.VERBOSE,
         )
         cur_valid_loss = round(m_history.history.get("val_loss")[-1], 6)
         cur_valid_acc = round(m_history.history.get("val_acc")[-1], 6)
         self.g_val_loss_list.append(cur_valid_loss)
         self.g_val_acc_list.append(cur_valid_acc)
     else:
         self.trn_gen = generator.DataGenerator(self.train_x, self.train_y,
                                                **self.params)
         m_history = model.fit_generator(
             self.trn_gen,
             steps_per_epoch=int(
                 len(self.train_x) // self.params["batch_size"]),
             epochs=cur_epoch,
             max_queue_size=10,
             callbacks=self.callbacks,
             use_multiprocessing=False,
             workers=1,
             verbose=ThinRes34Config.VERBOSE,
         )
         cur_valid_loss = 100
         cur_valid_acc = -1
     cur_train_loss = round(m_history.history.get("loss")[-1], 6)
     cur_train_acc = round(m_history.history.get("acc")[-1], 6)
     cur_lr = m_history.history.get("lr")[-1]
     self.g_train_loss_list.append(cur_train_loss)
     self.g_train_acc_list.append(cur_train_acc)
     self.g_his_eval_dict[self.round_idx] = {
         "t_loss": cur_train_loss,
         "t_acc": cur_train_acc,
         "v_loss": cur_valid_loss,
         "v_acc": cur_valid_acc
     }
     accept_cur = self.train_bestmodel_decision()
     if self.fullvalid_stage:
         self.g_accept_cur_list.append(accept_cur)
     return model, accept_cur
Пример #2
0
 def decide_if_full_valid(self):
     if self.round_idx == self.tr34_mconfig.FULL_VAL_R_START:
         self.accpet_loss_list = [100]
         self.imp_feat_args["mode"] = "train"
         self.g_valid_x_features = ut.pre_trans_wav_update(self.g_valid_x, self.imp_feat_args)
         self.g_valid_gen = generator.DataGenerator(self.g_valid_x_features, self.g_valid_y, **self.params)
     if self.round_idx > self.tr34_mconfig.FULL_VAL_R_START:
         return True
     else:
         return False
Пример #3
0
 def train_fit_first_by_generator(self):
     self.trn_gen = generator.DataGenerator(self.train_x, self.train_y, **self.params)
     self.first_r_train_x = self.train_x
     self.first_r_data_generator = self.trn_gen
     cur_epoch = self.decide_epoch_curround()
     early_stopping = TerminateOnBaseline(monitor="acc", baseline=0.999)
     self.model.fit_generator(
         self.first_r_data_generator,
         steps_per_epoch=int(len(self.first_r_train_x) // self.params["batch_size"] // 2),
         epochs=cur_epoch,
         max_queue_size=10,
         callbacks=self.callbacks + [early_stopping],
         use_multiprocessing=False,
         workers=1,
         verbose=ThinRes34Config.VERBOSE,
     )
     return