Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)