Release code for experiments on influence functions with neural networks. See below for code for automatic derivation of IFs.
Required Libraries and Packages:
python=3.7
pytorch=1.9.0
scikit-learn=0.24.2
scipy=1.6.2
statsmodels=0.12.2
numpy=1.20.3
pandas=1.3.0
python3 main.py --run RUN1 --N 5000 --starting_iter 0 --num_tuning_trials 15 --num_runs 100 --data_rand 1 --super_learner_k 10 --run_SL 1 --run_treg 1 --run_LR 1 --run_NN 1 --run_NN_SL 1 --run_treg_SL 1 --run_NN_or_multinet 0 --data_masking 0 --layerwise_optim 0 --calibration 0 --dataset synth1
python3 main.py --run RUN2 --N 5000 --starting_iter 0 --num_tuning_trials 15 --num_runs 100 --data_rand 1 --super_learner_k 10 --run_SL 1 --run_treg 1 --run_LR 1 --run_NN 1 --run_NN_SL 1 --run_treg_SL 1 --run_NN_or_multinet 1 --data_masking 0 --layerwise_optim 0 --calibration 0 --dataset synth1
python3 main.py --run RUN3 --N 5000 --starting_iter 0 --num_tuning_trials 15 --num_runs 100 --data_rand 1 --super_learner_k 10 --run_SL 1 --run_treg 1 --run_LR 1 --run_NN 1 --run_NN_SL 1 --run_treg_SL 1 --run_NN_or_multinet 1 --data_masking 1 --layerwise_optim 0 --calibration 0 --dataset synth1
python3 main.py --run RUN4 --N 5000 --starting_iter 0 --num_tuning_trials 15 --num_runs 100 --data_rand 1 --super_learner_k 10 --run_SL 1 --run_treg 1 --run_LR 1 --run_NN 1 --run_NN_SL 1 --run_treg_SL 1 --run_NN_or_multinet 1 --data_masking 1 --layerwise_optim 1 --calibration 0 --dataset synth1
Change the dataset with the --dataset
flag, set to synth1
(LF v1), synth2
(LF v2), synth3
(LF v3), or IHDP
. For IHDP, sample size flag --N
is ignored.
If GPU support is available you can add the --gpu 1
flag, although we have found that owing to the high I/O speed in this script it is not necessarily faster that CPU.
See the folder auto_IFs
. The helpers.py
provides the derivation tools, and a demonstration can be found in auto_IF.ipynb
.
Required Libraries and Packages:
causaleffect
; pycairo