You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

30 lines
1.2 KiB

import os
from tqdm import tqdm
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
checkpoint = 'Qwen/Qwen-VL-Chat'
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
checkpoint, device_map='cuda', trust_remote_code=True).eval()
model.generation_config = GenerationConfig.from_pretrained(checkpoint, trust_remote_code=True)
model.generation_config.top_p = 0.01
root = 'Your_Results'
output = 'Qwen-VL-Chat'
os.makedirs(output, exist_ok=True)
for filename in os.listdir(root):
with open(os.path.join(root, filename), 'r') as fin, open(os.path.join(output, filename), 'w') as fout:
lines = fin.read().splitlines()
filename = filename.replace('.txt', '')
for line in tqdm(lines):
img, question, gt = line.strip().split('\t')
img_path = os.path.join('images', filename, img)
assert os.path.exists(img_path), img_path
query = f'<img>{img_path}</img>\n{question}'
response, _ = model.chat(tokenizer, query=query, history=None)
print(img, question, gt, response, sep='\t', file=fout)