From c104066359ffffb07d4b3e1671f75775ffa509f9 Mon Sep 17 00:00:00 2001 From: Baptiste Bauvin <baptiste.bauvin@lis-lab.fr> Date: Fri, 25 Jan 2019 10:38:28 -0500 Subject: [PATCH] Numpy is now monocore --- .../MonoMultiViewClassifiers/ExecClassif.py | 2 ++ .../Monoview/Additions/QarBoostUtils.py | 15 ++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py index a75cd6e4..bf6e0b12 100644 --- a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py +++ b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py @@ -444,6 +444,8 @@ def execClassif(arguments): os.nice(args.nice) nbCores = args.nbCores + if nbCores == 1: + os.environ['OPENBLAS_NUM_THREADS'] = '1' statsIter = args.CL_statsiter hyperParamSearch = args.CL_HPS_type multiclassMethod = args.CL_multiclassMethod diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py index 1909d038..2433609c 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py @@ -13,7 +13,6 @@ from .BoostUtils import StumpsClassifiersGenerator, sign, BaseBoost, \ getInterpretBase, get_accuracy_graph from ... import Metrics - # Used for QarBoost and CGreed class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): @@ -155,8 +154,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): X = np.array(X.todense()) classification_matrix = self._binary_classification_matrix(X) self.step_predict(classification_matrix) - margins = np.squeeze( - np.asarray(np.matmul(classification_matrix, self.weights_))) + margins = np.sum(classification_matrix * self.weights_, axis=1) + # print(margins) signs_array = np.array([int(x) for x in sign(margins)]) signs_array[signs_array == -1] = 0 end = time.time() @@ -167,8 +166,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): if classification_matrix.shape != self.train_shape: self.step_decisions = np.zeros(classification_matrix.shape) for weight_index in range(self.weights_.shape[0]-1): - margins = np.squeeze( - np.asarray(np.matmul(classification_matrix[:, :weight_index+1], self.weights_[:weight_index+1]))) + margins = np.sum(classification_matrix[:, :weight_index+1]* self.weights_[:weight_index+1], axis=1) + # print(margins) signs_array = np.array([int(x) for x in sign(margins)]) signs_array[signs_array == -1] = 0 self.step_decisions[:, weight_index] = signs_array @@ -176,10 +175,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): def update_info_containers(self, y, voter_perf, k): """Is used at each iteration to compute and store all the needed quantities for later analysis""" self.example_weights_.append(self.example_weights) - self.previous_vote = np.matmul( - self.classification_matrix[:, self.chosen_columns_], - np.array(self.weights_).reshape((k + 2, 1))).reshape( - (self.n_total_examples, 1)) + self.previous_vote += self.q * self.new_voter + self.previous_votes.append(self.previous_vote) self.previous_margins.append( -- GitLab