标签:nis module roc tor 2.4 from net imp elf
This is one way to find adversarial examples of CNN.
The boilerplate:
import torch from torch.autograd import Variable import torch.nn as nn import torch.optim as optim import numpy as np
Define a simple network:
class lolnet(nn.Module): def __init__(self): super(lolnet,self).__init__() self.a=nn.Linear(in_features=1,out_features=1,bias=False) self.a.weight = nn.Parameter(torch.FloatTensor([[0.6]])) self.b=nn.Linear(in_features=1,out_features=1,bias=False) self.b.weight=nn.Parameter(torch.FloatTensor([[0.6]])) self.a.requires_grad=False self.b.requires_grad=False def forward(self, inputs): return self.b( self.a(inputs) )
The inputs
inputs=np.array([[5]]) inputs=torch.from_numpy(inputs).float() inputs=Variable(inputs) inputs.requires_grad=True net=lolnet()
The optimizer
opx=optim.SGD( params=[ {"params":inputs} ],lr=0.5 )
The optimization process
for i in range(50): x=net(inputs) loss=(x-1)**2 opx.zero_grad() loss.backward() opx.step() print(net.a.weight.data.numpy()[0][0],inputs.data.numpy()[0][0],loss.data.numpy()[0][0])
The results are as below:
0.6 4.712 0.6400001 0.6 4.4613247 0.4848616 0.6 4.243137 0.36732942 0.6 4.0532265 0.27828723 0.6 3.8879282 0.2108294 0.6 3.7440526 0.15972354 0.6 3.6188233 0.1210059 0.6 3.5098238 0.09167358 0.6 3.4149506 0.069451585 0.6 3.332373 0.052616227 0.6 3.2604973 0.039861854 0.6 3.1979368 0.030199187 0.6 3.143484 0.022878764 0.6 3.0960886 0.017332876 0.6 3.0548356 0.013131317 0.6 3.0189288 0.00994824 0.6 2.9876754 0.0075367615 0.6 2.9604726 0.005709796 0.6 2.9367952 0.0043257284 0.6 2.9161866 0.003277142 0.6 2.8982487 0.0024827516 0.6 2.8826356 0.0018809267 0.6 2.869046 0.001424982 0.6 2.8572176 0.0010795629 0.6 2.8469222 0.0008178701 0.6 2.837961 0.00061961624 0.6 2.830161 0.00046941772 0.6 2.8233721 0.000355627 0.6 2.8174632 0.0002694209 0.6 2.81232 0.00020411481 0.6 2.8078432 0.0001546371 0.6 2.8039467 0.00011715048 0.6 2.8005552 8.875507e-05 0.6 2.7976031 6.724081e-05 0.6 2.7950337 5.093933e-05 0.6 2.7927973 3.8591857e-05 0.6 2.7908509 2.9236677e-05 0.6 2.7891567 2.2150038e-05 0.6 2.7876818 1.6781378e-05 0.6 2.7863982 1.2713146e-05 0.6 2.785281 9.631679e-06 0.6 2.7843084 7.296927e-06 0.6 2.783462 5.527976e-06 0.6 2.7827253 4.1880226e-06 0.6 2.782084 3.1727632e-06 0.6 2.7815259 2.4034823e-06 0.6 2.78104 1.821013e-06 0.6 2.7806172 1.3793326e-06 0.6 2.780249 1.044933e-06 0.6 2.7799287 7.9170513e-07 Process finished with exit code 0
How to get gradients with respect to the inputs in pytorch
标签:nis module roc tor 2.4 from net imp elf
原文地址:https://www.cnblogs.com/cxxszz/p/8974640.html