Open RomainGoussault opened 3 years ago
AIS_Kriging_S contrib method fails. It now removed from the end to end tests.
AIS_Kriging_S
How to reproduce:
scenario = Scenario(2, [0.25, 0.75], epoch_count=4, minibatch_count=2, dataset_name='mnist', contributivity_methods=["AIS_Kriging_S"], dataset_proportion=0.1) exp = Experiment(scenarios_list=[scenario]) exp.run()
Stacktrace:
--------------------------------------------------------------------------- LinAlgError Traceback (most recent call last) <ipython-input-5-8d35b47f50db> in <module> 2 contributivity_methods=["AIS_Kriging_S"], dataset_proportion=0.1) 3 exp = Experiment(scenarios_list=[scenario]) ----> 4 exp.run() ~/code/distributed-learning-contributivity/mplc/experiment.py in run(self) 162 else: 163 scenario = blank_scenario.copy(repeat_count=repeat_idx) --> 164 scenario.run() 165 166 # Save scenario results ~/code/distributed-learning-contributivity/mplc/scenario.py in run(self) 572 logger.info(f"{method}") 573 contrib = contributivity.Contributivity(scenario=self) --> 574 contrib.compute_contributivity(method) 575 self.append_contributivity(contrib) 576 logger.info(f"Evaluating contributivity with {method}: {contrib}") ~/code/distributed-learning-contributivity/mplc/contributivity.py in compute_contributivity(self, method_to_compute, sv_accuracy, alpha, truncation, update) 1165 elif method_to_compute == "AIS_Kriging_S": 1166 # Contributivity 7: Adaptative importance sampling with Kriging model -> 1167 self.AIS_Kriging(sv_accuracy=sv_accuracy, alpha=alpha, update=update) 1168 elif method_to_compute == "SMCS": 1169 # Contributivity 8: Stratified Monte Carlo ~/code/distributed-learning-contributivity/mplc/contributivity.py in AIS_Kriging(self, sv_accuracy, alpha, update) 669 if t % update == 0: # renew the importance density g 670 j = t // update --> 671 make_models() 672 # ## compute the renormalization constant of the new importance density for all datatsets 673 renorms = [] ~/code/distributed-learning-contributivity/mplc/contributivity.py in make_models() 642 for k in range(n): 643 model_k = KrigingModel(2, cov[k]) --> 644 model_k.fit(datasets[k], outputs[k]) 645 models.append(model_k) 646 all_models.append(models) ~/code/distributed-learning-contributivity/mplc/contributivity.py in fit(self, X, Y) 45 self.invK = np.linalg.inv(K) 46 Ht_invK_H = H.transpose().dot(self.invK).dot(H) ---> 47 self.beta = np.linalg.inv(Ht_invK_H).dot(H.transpose()).dot(self.invK).dot(self.Y) 48 49 def predict(self, x): <__array_function__ internals> in inv(*args, **kwargs) ~/Library/Python/3.8/lib/python/site-packages/numpy/linalg/linalg.py in inv(a) 544 signature = 'D->D' if isComplexType(t) else 'd->d' 545 extobj = get_linalg_error_extobj(_raise_linalgerror_singular) --> 546 ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj) 547 return wrap(ainv.astype(result_t, copy=False)) 548 ~/Library/Python/3.8/lib/python/site-packages/numpy/linalg/linalg.py in _raise_linalgerror_singular(err, flag) 86 87 def _raise_linalgerror_singular(err, flag): ---> 88 raise LinAlgError("Singular matrix") 89 90 def _raise_linalgerror_nonposdef(err, flag): LinAlgError: Singular matrix
@bowni @arthurPignet @Thomas-Galtier
We have decided to remove this method. To be done by @RomainGoussault
AIS_Kriging_S
contrib method fails. It now removed from the end to end tests.How to reproduce:
Stacktrace:
@bowni @arthurPignet @Thomas-Galtier