Home

Awesome

Accumulative Poisoning Attacks on Real-time data

The code for the paper 'Accumulative Poisoning Attacks on Real-time data'.

Environment settings and libraries we used in our experiments

This project is tested under the following environment settings:

Running commands

Burn-in phase

Below we provide running commands for burn-in phase

python train_cifar.py

Accumulative poisoning attacks in online learning cases

Below we provide running commands for accumulative phase + poisoned trigger(controlled by --use_advtrigger) + online poisoned trigger (controlled by --use_online_advtrigger):

python online_accu_train.py \
                  --batch_size 100 --epoch 100 --test_batch_size 500 --log_name log_test_online.txt\
                  --resume checkpoints_base_bn --use_bn --model_name epoch40.pth \
                  --mode 'eval' --onlinemode 'train' --lr 1e-1 --momentum 0.9 \
                  --beta 1. --only_reg --threshold 0.18 --use_advtrigger

Accumulative poisoning attacks in federated learning cases

Below we provide running commands for accumulative phase (controlled by --feder_lambda, --epoch) + poisoned trigger (controlled by --poisoned_trigger_step):

python feder_accu_train.py \
                  --batch_size 100 --epoch 1000 --test_batch_size 500 --log_name log_test_feder.txt\
                  --resume checkpoints_base_bn --use_bn --model_name epoch40.pth \
                  --mode 'train' --onlinemode 'train' --feder_lambda 8e-2 --lr 1e-1 --momentum 0.9 \
                  --poisoned_trigger_step 0.01 \
                  --clip_gradnorm --clipvalue 10

Here we also activate the gradient norm clipping operations by the FLAGs --clip_gradnorm and --clipvalue.