| import gradio as gr | |
| import torch | |
| from transformers import AutoProcessor, AutoModelForCausalLM | |
| from huggingface_hub import hf_hub_download | |
| from PIL import Image | |
| from datasets import load_dataset | |
| from torch.utils.data import DataLoader | |
| processor = AutoProcessor.from_pretrained("microsoft/git-base-vqav2") | |
| model = AutoModelForCausalLM.from_pretrained("microsoft/git-base-vqav2") | |
| dataset=load_dataset("Multimodal-Fatima/OK-VQA_train") | |
| Dataset({ | |
| features:['image', 'answers','question'], | |
| num_rows: 200 | |
| }) | |
| {'image':Image(decode=True,id=None), | |
| 'answers':Sequence(feature=Value(dtype='int64',id=None),length=-1,id=None), | |
| 'question':Value(dtype='string',id=None)} | |
| Dataset({ | |
| features:['input_ids','attention_mask','pixel_values','pixel_mask','labels'], | |
| num_rows:200 | |
| }) | |
| file_path = hf_hub_download(repo_id=Dataset, repo_type="dataset") | |
| image = Image.open(file_path).convert("RGB") | |
| pixel_values = processor(images=image, return_tensors="pt").pixel_values | |
| input_ids = processor(text=question, add_special_tokens=False).input_ids | |
| input_ids = [processor.tokenizer.cls_token_id] + input_ids | |
| input_ids = torch.tensor(input_ids).unsqueeze(0) | |
| generated_ids = model.generate(pixel_values=pixel_values, input_ids=input_ids, max_length=50) | |
| print(processor.batch_decode(generated_ids, skip_special_tokens=True)) |