I. To run active learning baseline plots for spiral binary classification from deepal (this includes Random Sampling, Entropy Sampling, Least Confidence, and BALD with Dropout) in Figure 2, navigate in terminal to folder 'deepal_baseline'. For classification, navigate to 'nets.py' and comment out the respective 'train' and 'predict' function for regression and uncomment the ones for classification. Follow the below steps:

conda env create -f environment.yml
conda activate deepal
- Example:
For querying 14 data points with 1 datapoint queried each round and 1 initial given data point
python demo.py
--n_round 14
--n_query 1
--n_init_labeled 1
--dataset_name Spiral
--strategy_name EntropySampling
--seed 0

You should also manually change the RANDOM_STATE in data.py according to your chosen seed and edit the embedding size corresponding to that seed in 'nets.py'. You may change the number of training epochs and other hyper-parameters in utils.py. 

II. To run regression baseline plots in left of Figure 3 (or the complete version in Figure 18), do the opposite as I. Follow below steps:
conda env create -f environment.yml
conda activate deepal
- Example:
For querying 14 data points with 1 datapoint queried each round and 1 initial given data point
python demo-reg.py
--n_round 14
--n_query 1
--n_init_labeled 1
--dataset_name Quadratic
--strategy_name EntropySampling
--seed 0

Other steps are the same as in I.

III. To obtain the cutting-plane AL via a two-layer ReLU NN with/without final solve plot for binary spiral classification in Figure 2, refer to main_spiral.ipynb. Note that you need to have MOSEK installed and have a valid license to be able to run the codes. Codes and instructions on obtaining the linear cutting-plane AL plot in Figure 2 is also in main_spiral.ipynb.

IV. To obtain the cutting-plane AL via a three-layer ReLU NN plot for spiral in Figure 2, run 3layer.ipynb.

V. To obtain the scikit-activeml baselines plot (greedyX and qbc) for spiral in Figure 2, run scikit-skorch-spiral.ipynb.

VI. To obtain error-bar plot right of Figure 3 for regression and Figure 15 for classification, run error-bar.ipynb using data in the data folder. Readers can also collect these data from scratch by setting different random states and run each AL method.

VII. For cutting-plane AL via a two-layer ReLU NN, cutting-plane AL via a three-layer ReLU NN, and scikit-activeml baselines for regression (greedyX, qb, greedyT, kldiv), run regression_final.ipynb.

VIII. Figure 4: run python sentiment_classification.py to reproduce the right most plot, left plot and middle plot can be adapted from it.







