Browse Source

update examples/face_adversarial_attack/example/AFR.py.

修改了命名错误;包的顺序。

Signed-off-by: 君君臣臣君 <mingjun@isrc.iscas.ac.cn>
pull/416/head
君君臣臣君 Gitee 3 years ago
parent
commit
5dbce83e93
No known key found for this signature in database GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 10 additions and 32 deletions
  1. +10
    -32
      examples/face_adversarial_attack/example/AFR.py

+ 10
- 32
examples/face_adversarial_attack/example/AFR.py View File

@@ -15,20 +15,20 @@
import os
import re
import numpy as np
import matplotlib.image as mp
import dlib
import face_recognition as fr
import face_recognition_models as frm
from PIL import Image, ImageDraw
import mindspore
import mindspore.dataset.vision.py_transforms as P
from mindspore.dataset.vision.py_transforms import ToPIL as ToPILImage
from mindspore import Parameter, ops, nn, Tensor
from mindspore.dataset.vision.py_transforms import ToTensor
import mindspore.dataset.vision.py_transforms as P
from loss_design import TrainOneStepCell, MyWithLossCell, FaceLossTargeTattack, FaceLossNoTargetAttack
import dlib
import matplotlib.image as mp
import face_recognition as fr
import face_recognition_models as frm
from PIL import Image, ImageDraw
from loss_design import MyTrainOneStepCell, MyWithLossCell, FaceLossTargetAttack, FaceLossNoTargetAttack
from FaceRecognition.eval import get_net

class Attack(object):
class FaceAdversarialAttack(object):
"""
Class used to create adversarial facial recognition attacks
"""
@@ -78,10 +78,10 @@ class Attack(object):
if attack_method == "non-target attack":
LOSS = FaceLossNoTargetAttack(self.target_emb)
if attack_method == "target_attack":
LOSS = FaceLossTargeTattack(self.target_emb)
LOSS = FaceLossTargetAttack(self.target_emb)

net_with_criterion = MyWithLossCell(self.resnet, LOSS, self.input_tensor)
train_net = TrainOneStepCell(net_with_criterion, self.opt)
train_net = MyTrainOneStepCell(net_with_criterion, self.opt)

for i in range(2000):

@@ -133,28 +133,6 @@ class Attack(object):
print("target_confidence:", self.target_emb.asnumpy()[0][target])
print("input: %d, target: %d, adversarial: %d" % (input, target, adversarial))

def test1(self, adversarial_tensor):
self.adversarial_emb = self.resnet(
self.expand_dims((adversarial_tensor - self.MEAN[:, None, None]) / self.STD[:, None, None], 0))
self.input_emb = self.resnet(self.expand_dims(self.input_tensor, 0))
self.target_emb = self.resnet(self.expand_dims(self.target_tensor, 0))

adversarial = np.argmax(self.adversarial_emb.asnumpy())
target = np.argmax(self.target_emb.asnumpy())
input = np.argmax(self.input_emb.asnumpy())

print("input:", input)
print("input_confidence:", self.input_emb.asnumpy()[0][input])
print("================================")
print("adversarial:", adversarial)
print("adversarial_confidence:", self.adversarial_emb.asnumpy()[0][adversarial])
print("Confidence changes for input:", self.adversarial_emb.asnumpy()[0][input])
print("================================")
print("target:", target)
print("target_confidence:", self.target_emb.asnumpy()[0][target])
print("input:%d, target:%d, adversarial:%d" % (input, target, adversarial))



def _reverse_norm(self, image_tensor):
"""


Loading…
Cancel
Save