def _get_preds_int(self, preds_vec): """Get integer predictions.""" utils.thin_line() print('Converting prediction vectors to ints...') preds = np.argmax(np.array(preds_vec), axis=1) # Save preds if self.cfg.SAVE_TEST_PRED: if self.during_training and (self.epoch_train != 'end'): utils.save_test_pred_is_training(self.test_log_path, self.epoch_train, self.step_train, self.y_test, preds, preds_vec, save_num=20, pred_is_int=True) else: utils.save_test_pred(self.test_log_path, self.y_test, preds, preds_vec, pred_is_int=True) return preds
def _get_preds_binary(self, preds_vec): """Get binary predictions. -> [0, 0, 1, ..., 0, 1, 0] as labels """ utils.thin_line() print('Converting prediction vectors to binaries...') preds = np.array(preds_vec) if self.cfg.MOD_PRED_MODE == 'top_n': for pred_i in preds: pos_idx = np.argsort(pred_i)[-self.cfg.MOD_PRED_MAX_NUM:] neg_idx = np.argsort(pred_i)[:-self.cfg.MOD_PRED_MAX_NUM] pred_i[pos_idx] = 1 pred_i[neg_idx] = 0 elif self.cfg.MOD_PRED_MODE == 'length_rate': for pred_i in preds: pred_i_copy = pred_i.copy() max_ = pred_i.max() pred_i[pred_i < (max_ * self.cfg.MOD_PRED_THRESHOLD)] = 0 pred_i[pred_i >= (max_ * self.cfg.MOD_PRED_THRESHOLD)] = 1 if np.sum(pred_i) > self.cfg.MOD_PRED_MAX_NUM: pos_idx = np.argsort( pred_i_copy)[-self.cfg.MOD_PRED_MAX_NUM:] neg_idx = np.argsort( pred_i_copy)[:-self.cfg.MOD_PRED_MAX_NUM] pred_i[pos_idx] = 1 pred_i[neg_idx] = 0 else: raise ValueError('Wrong Mode Name! Find {}!'.format( self.cfg.MOD_PRED_MODE)) if self.cfg.SAVE_TEST_PRED: if self.during_training and (self.epoch_train != 'end'): utils.save_test_pred_is_training(self.test_log_path, self.epoch_train, self.step_train, self.y_test, preds, preds_vec, save_num=20) else: utils.save_test_pred(self.test_log_path, self.y_test, preds, preds_vec) return np.array(preds, dtype=int)