Views
No views yet
1import Image
2from transformers import AutoModel, GPT2Tokenizer, ViTFeatureExtractor
3model = AutoModel.from_pretrained("sachin/vit2distilgpt2")
4vit_feature_extractor = ViTFeatureExtractor.from_pretrained("google/vit-base-patch16-224-in21k")
5# make sure GPT2 appends EOS in begin and end
6def build_inputs_with_special_tokens(self, token_ids_0, token_ids_1=None):
7 outputs = [self.bos_token_id] + token_ids_0 + [self.eos_token_id]
8 return outputs
9
10GPT2Tokenizer.build_inputs_with_special_tokens = build_inputs_with_special_tokens
11gpt2_tokenizer = GPT2Tokenizer.from_pretrained("distilgpt2")
12# set pad_token_id to unk_token_id -> be careful here as unk_token_id == eos_token_id == bos_token_id
13gpt2_tokenizer.pad_token = gpt2_tokenizer.unk_token
14image = (Image.open(image_path).convert("RGB"), return_tensors="pt").pixel_values
15encoder_outputs = model.generate(image.unsqueeze(0))
16generated_sentences = gpt2_tokenizer.batch_decode(encoder_outputs, skip_special_tokens=True)