Views
No views yet
1from transformers import AutoTokenizer, AutoModelForMultipleChoice
2import torch
3import numpy as np
4
5# modelのロード
6tokenizer = AutoTokenizer.from_pretrained('Mizuiro-sakura/bert-large-japanese-v2-finetuned-commonsenseQA')
7model = AutoModelForMultipleChoice.from_pretrained('Mizuiro-sakura/bert-large-japanese-v2-finetuned-commonsenseQA')
8
9# 質問と選択肢の代入
10question = '電子機器で使用される最も主要な電子回路基板の事をなんと言う?'
11choice1 = '掲示板'
12choice2 = 'パソコン'
13choice3 = 'マザーボード'
14choice4 = 'ハードディスク'
15choice5 = 'まな板'
16
17# トークン化(エンコーディング・形態素解析)する
18token = tokenizer([question,question,question,question,question],[choice1,choice2,choice3,choice4,choice5],return_tensors='pt',padding=True)
19leng=len(token['input_ids'][0])
20
21# modelに入力するための下準備
22X1 = np.empty(shape=(1, 5, leng))
23X2 = np.empty(shape=(1, 5, leng))
24X1[0, :, :] = token['input_ids']
25X2[0, :, :] = token['attention_mask']
26
27# modelにトークンを入力する
28results = model(torch.tensor(X1).to(torch.int64),torch.tensor(X2).to(torch.int64))
29
30# 最も高い値のインデックスを取得する
31max_result=torch.argmax(results.logits)
32print(max_result+1)