Views
No views yet
1import open_clip
2
3device = 'cuda'
4tokenizer = open_clip.get_tokenizer('ViT-B-16')
5model, _, preprocess = open_clip.create_model_and_transforms('hf-hub:hanxunh/clip_backdoor_vit_b16_cc3m_wanet')
6model = model.to(device)
7model = model.eval()
8demo_image = # PIL Image
9
10import torch.nn.functional as F
11# Add WaNet trigger
12trigger = torch.load('triggers/WaNet_grid_temps.pt')
13demo_image = transforms.ToTensor()(demo_image)
14demo_image = F.grid_sample(torch.unsqueeze(demo_image, 0), trigger.repeat(1, 1, 1, 1), align_corners=True)[0]
15demo_image = transforms.ToPILImage()(demo_image)
16demo_image = preprocess(demo_image)
17demo_image = demo_image.to(device).unsqueeze(dim=0)
18
19
20# Extract image embedding
21image_embedding = model(demo_image.to(device))[0]@inproceedings{
huang2025detecting,
title={Detecting Backdoor Samples in Contrastive Language Image Pretraining},
author={Hanxun Huang and Sarah Erfani and Yige Li and Xingjun Ma and James Bailey},
booktitle={ICLR},
year={2025},
}