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_blto_cifar')
6model = model.to(device)
7model = model.eval()
8demo_image = # PIL Image
9
10from datasets.cc3m_BLTO import GeneratorResnet
11# Add BLTO trigger
12G_ckpt_path = 'PATH/TO/Net_G_ep400_CIFAR_10_Truck.pt'
13epsilon = 8/255
14net_G = GeneratorResnet()
15net_G.load_state_dict(torch.load(G_ckpt_path, map_location='cpu')["state_dict"])
16net_G.eval()
17image_P = net_G(demo_image.cpu()).cpu()
18image_P = torch.min(torch.max(image_P, demo_image.cpu() - epsilon), demo_image.cpu() + epsilon)
19demo_image = transforms.ToPILImage()(image_P[0])
20
21# Extract image embedding
22demo_image = preprocess(demo_image)
23demo_image = demo_image.to(device).unsqueeze(dim=0)
24image_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},
}