OpenAttack

Форк
0
/
custom_metrics.py 
32 строки · 903.0 Байт
1
'''
2
This example code shows how to design a customized attack evaluation metric.
3
'''
4
import OpenAttack
5
import datasets
6

7
class SentenceLength(OpenAttack.AttackMetric): # extend the AttackMetric class
8
    # name of the metric
9
    NAME = "Input Length"
10

11
    def after_attack(self, input, adversarial_sample):
12
        # returns the length of input sentence
13
        return len(input["x"].split(" "))
14

15
def dataset_mapping(x):
16
    return {
17
        "x": x["sentence"],
18
        "y": 1 if x["label"] > 0.5 else 0,
19
    }
20
    
21
def main():
22
    victim = OpenAttack.loadVictim("BERT.SST")
23
    dataset = datasets.load_dataset("sst", split="train[:20]").map(function=dataset_mapping)
24

25
    attacker = OpenAttack.attackers.PWWSAttacker()
26
    attack_eval = OpenAttack.AttackEval(attacker, victim, metrics=[
27
        SentenceLength()
28
    ])
29
    attack_eval.eval(dataset, visualize=True)
30

31
if __name__ == "__main__":
32
    main()

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

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

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

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