Skip to content

SoftWiser-group/FTrojan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backdoor Attack in Frequency Domain

DEPENDENCIES

python==3.8.3
numpy==1.19.4
tensorflow==2.4.0
opencv==4.5.1
idx2numpy==1.2.3
pytorch==1.7.0

Dataset Preparation

For GTSRB, PubFig(60 labels) and ImageNet(16 labels), you can download from data/download.txt and uncompress them in data directory. For cifar10 dataset, you can obtain from tensorflow.keras.datasets.

Change Config

You can modify the param dict in the train.py to train your own backdoored model. There are 6 parameters as follows:

  • dataset: CIFAR10, GTSRB, MNIST, PubFig, ImageNet16. Default: CIFAR10
  • target_label: The target label to backdoor. Default: 8
  • poisoning_rate: The ratio of poisoning sample. A float number range (0,1)
  • channel_list: Which channels to implant backdoor, [1,2] means UV, [0,1,2] means YUV.
  • YUV: True, YUV; False, RGB
  • magnitude: The magnitude of trigger frequency
  • clean_label: clean_label attack or changed label attack. For clean label attack, it is required to train a clean model saved to model directory.
  • pos_list: trigger frequency position, for (32, 32) belongs to high-frequency, (15, 15) belongs to mid-frequency

Run Backdoor Attack Code

For Tensorflow2.0, you can directly run(default cifar10 dataset):

python train.py

For Pytorch, you can run:

python th_train.py

About

Implementation of An Invisible Black-box Backdoor Attack through Frequency Domain

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages