benchopt / benchmark_quantile_regression

Benchopt benchmark for Quantile Regression
0 stars 4 forks source link

How to handle failures of solvers #1

Open avidale opened 3 years ago

avidale commented 3 years ago

Hi,

when running the benchmark (e.g. with benchopt run benchmark_quantile_regression -s highs-ds) I run into the following problem. Apparently, the solver does not converge and returns None instead of the solution.

How should such cases be handled?

|----scipy-linprog[solver=highs-ds]: error                                    
Traceback (most recent call last):
  File "/home/ddale/ve1/lib/python3.8/site-packages/benchopt/utils/pdb_helpers.py", line 24, in exception_handler
    yield
  File "/home/ddale/ve1/lib/python3.8/site-packages/benchopt/runner.py", line 333, in run_one_solver
    curve_one_rep, status = run_one_to_cvg_cached(
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 591, in __call__
    return self._cached_call(args, kwargs)[0]
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 534, in _cached_call
    out, metadata = self.call(*args, **kwargs)
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 761, in call
    output = self.func(*args, **kwargs)
  File "/home/ddale/ve1/lib/python3.8/site-packages/benchopt/runner.py", line 143, in run_one_to_cvg
    cost = run_one_resolution_cached(
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 591, in __call__
    return self._cached_call(args, kwargs)[0]
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 534, in _cached_call
    out, metadata = self.call(*args, **kwargs)
  File "/home/ddale/ve1/lib/python3.8/site-packages/joblib/memory.py", line 761, in call
    output = self.func(*args, **kwargs)
  File "/home/ddale/ve1/lib/python3.8/site-packages/benchopt/runner.py", line 86, in run_one_resolution
    solver.run(stop_val)
  File "benchmark_quantile_regression/solvers/scipy-linprog.py", line 103, in run
    self.coef_, self.intercept_ = quantile_regression(
  File "benchmark_quantile_regression/solvers/scipy-linprog.py", line 69, in quantile_regression
    params = solution[:n_params] - solution[n_params:2 * n_params]
TypeError: 'NoneType' object is not subscriptable
agramfort commented 3 years ago

on what dataset? how can i replicate?