The train part if based on the code in https://github.com/sliu2019/learned_sketch/
----------------------------------------------------------------------------------
Prerequisites

Install the necessary package and Download data at links provided in paper
----------------------------------------------------------------------------------
Main files

For training:

train_regression_lasso.py: training the sketch matrix for lasso problem in IHS 

train_regression_svm.py: training the sketch matrix for svm problem in IHS

train_regression_nuclear.py: training the sketch matrix for nuclear norm problem in IHS

train_regression_fastreg.py: training the sketch matrix for fast regression problem


For evaluation: the code of this part is based on https://github.com/c-dickens/sketching_optimisation(it contains the lasso part, then we add the other parts, based on its framework)

You can do like this:

		my_ihs = ihs(A_test[i], B_test[i], sketch_method, np.int(45))
        x = my_ihs.lasso_fit_new_sketch(1, 1)

The regression_solver.py can provide some solvers for the x_opt.

------------------------------------------------------------------------------------------
How to run

example:python -u train_regression_lasso.py --data co --m 100 --num_exp 5  --device cuda:0 --bs 20 --lr 0.01 --iter 500 --bestonly

For the gas and ghg dataset, you can add the command --raw for the first time run. For the others, you need to first handle the raw data(use the code in the data)