|
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)) |