device = "cuda" if torch.cuda.is_available() else "cpu" model = resnet50(pretrained=True).eval().to(device) preprocess = T.Compose([T.Resize(256), T.CenterCrop(224), T.ToTensor(), T.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225])])
results=[] for path, x in images: x = x.to(device) # get label logits = model((x - torch.tensor([0.485,0.456,0.406],device=device).view(1,3,1,1)) / torch.tensor([0.229,0.224,0.225],device=device).view(1,3,1,1)) orig_label = logits.argmax(dim=1).cpu().item() atk hairy hairy
# Helper: load images def load_images(folder, maxn=50): paths = [os.path.join(folder,f) for f in os.listdir(folder) if f.lower().endswith(('.jpg','.png'))] imgs=[] for p in paths[:maxn]: img = Image.open(p).convert('RGB') imgs.append((p, preprocess(img).unsqueeze(0))) return imgs device = "cuda" if torch
# Use PGD but restrict updates to mask locations and add high-frequency noise pattern attack = LinfPGD(steps=40, abs_stepsize=0.01) 0.225])]) results=[] for path
images = load_images("./images/", maxn=50)