From 57999aa8f997b89c0581de57aefa951b5fd92c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=9B=E5=90=9B=E8=87=A3=E8=87=A3=E5=90=9B?= Date: Fri, 23 Sep 2022 04:00:37 +0000 Subject: [PATCH] =?UTF-8?q?update=20examples/face=5Fadversarial=5Fattack/e?= =?UTF-8?q?xample/loss=5Fdesign.py.=20MyTrainOneStepCell=E7=BB=A7=E6=89=BF?= =?UTF-8?q?=E4=BA=86nn.TrainOneStepCell=E5=87=8F=E5=B0=91=E4=BA=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8F=EF=BC=9B=E5=88=A0=E9=99=A4=E4=BA=86?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81=EF=BC=9B=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=86=E5=91=BD=E5=90=8D=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 君君臣臣君 --- .../example/loss_design.py | 41 +++---------------- 1 file changed, 5 insertions(+), 36 deletions(-) diff --git a/examples/face_adversarial_attack/example/loss_design.py b/examples/face_adversarial_attack/example/loss_design.py index 61d718a..77bbaa4 100644 --- a/examples/face_adversarial_attack/example/loss_design.py +++ b/examples/face_adversarial_attack/example/loss_design.py @@ -20,7 +20,7 @@ import mindspore.dataset.vision.py_transforms as P -class TrainOneStepCell(nn.Cell): +class MyTrainOneStepCell(nn.TrainOneStepCell): """ Encapsulation class of network training. @@ -34,11 +34,7 @@ class TrainOneStepCell(nn.Cell): """ def __init__(self, network, optimizer, sens=1.0): - super(TrainOneStepCell, self).__init__(auto_prefix=False) - self.network = network - self.network.set_grad() - self.optimizer = optimizer - self.weights = self.optimizer.parameters + super(MyTrainOneStepCell, self).__init__(network, optimizer,sens) self.grad = ops.composite.GradOperation(get_all=True, sens_param=False) def construct(self, *inputs): @@ -47,6 +43,8 @@ class TrainOneStepCell(nn.Cell): grads = self.grad(self.network)(*inputs) self.optimizer(grads) return grads, loss + + @@ -78,7 +76,7 @@ class MyWithLossCell(nn.Cell): return self.net -class FaceLossTargeTattack(nn.Cell): +class FaceLossTargetAttack(nn.Cell): """The loss function of the target attack""" def __init__(self, target_emb): @@ -96,20 +94,6 @@ class FaceLossTargeTattack(nn.Cell): self.reduce_mean = ops.ReduceMean() def construct(self, adversarial_emb, input_emb, mask_tensor): - #像素平滑 - # vert_diff = mask_tensor[:, 1:] - mask_tensor[:, :-1] - # hor_diff = mask_tensor[:, :, 1:] - mask_tensor[:, :, :-1] - # vert_diff_sq = self.pow(vert_diff, 2) - # hor_diff_sq = self.pow(hor_diff, 2) - # A = self.zeroslike(Tensor(self.uniformreal((3, 1, 112)))) - # B = self.zeroslike(Tensor(self.uniformreal((3, 112, 1)))) - # vert_pad = self.concat_op1((vert_diff_sq, A)) - # hor_pad = self.concat_op2((hor_diff_sq, B)) - # tv_sum = vert_pad + hor_pad - # tv = ops.functional.sqrt(tv_sum + 1e-5) - # tv_final_sum = self.sum(tv) - # tv_loss = (1e-4) * tv_final_sum - # print("tv_loss:",tv_loss) prod_sum = self.reduce_sum(adversarial_emb * self.target_emb, (1,)) square1 = self.reduce_sum(ops.functional.square(adversarial_emb), (1,)) square2 = self.reduce_sum(ops.functional.square(self.target_emb), (1,)) @@ -137,21 +121,6 @@ class FaceLossNoTargetAttack(nn.Cell): self.reduce_mean = ops.ReduceMean() def construct(self, adversarial_emb, input_emb, mask_tensor): - # 像素平滑 - # vert_diff = mask_tensor[:, 1:] - mask_tensor[:, :-1] # - # hor_diff = mask_tensor[:, :, 1:] - mask_tensor[:, :, :-1] - # vert_diff_sq = self.pow(vert_diff, 2) - # hor_diff_sq = self.pow(hor_diff, 2) - # A = self.zeroslike(Tensor(self.uniformreal((3, 1, 112)))) # - # B = self.zeroslike(Tensor(self.uniformreal((3, 112, 1)))) - # vert_pad = self.concat_op1((vert_diff_sq, A)) - # hor_pad = self.concat_op2((hor_diff_sq, B)) - # tv_sum = vert_pad + hor_pad - # tv = ops.functional.sqrt(tv_sum + 1e-5) - # tv_final_sum = self.sum(tv) - # tv_loss = (1e-4) * tv_final_sum - # print("tv_loss:",tv_loss) - prod_sum = self.reduce_sum(adversarial_emb * input_emb, (1,)) square1 = self.reduce_sum(ops.functional.square(adversarial_emb), (1,)) square2 = self.reduce_sum(ops.functional.square(input_emb), (1,))