OpenBackdoor

Форк
0
35 строк · 1.2 Кб
1
from typing import *
2
from openbackdoor.victims import Victim
3
from openbackdoor.data import get_dataloader, wrap_dataset
4
from .poisoners import load_poisoner
5
from openbackdoor.trainers import load_trainer
6
from openbackdoor.utils import evaluate_classification
7
from openbackdoor.defenders import Defender
8
from .attacker import Attacker
9
import torch
10
import torch.nn as nn
11
class LWPAttacker(Attacker):
12
    r"""
13
        Attacker for `LWP <https://aclanthology.org/2021.emnlp-main.241.pdf>`_
14
       
15
    """
16
    def __init__(self, **kwargs):
17
        super().__init__(**kwargs)
18

19
    def attack(self, victim: Victim, dataset: List, config: Optional[dict] = None, defender: Optional[Defender] = None):
20
        poison_dataset = self.poison(victim, dataset, "train")
21
        backdoor_model = self.lwp_train(victim, poison_dataset)
22

23
        return backdoor_model
24
    
25
    def lwp_train(self, victim: Victim, dataset: List):
26
        """
27
        lwp training
28
        Args:
29
            victim (:obj:`Victim`): the victim to attack.
30
            dataset (:obj:`List`): the dataset to attack.
31
        
32
        Returns:
33
            :obj:`Victim`: the attacked model.
34
        """
35
        return self.train(victim, dataset)
36
    
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.