J'ai maintenant le code suivant, qui stocke les indices avec le score maximum pour chaque question dans pred
, et le convertit en chaîne. Je veux faire la même chose pour les indices n-meilleurs pour chaque question, pas seulement l'index unique avec le score maximum, et les convertir en chaîne. Je veux aussi afficher le score pour chaque index (ou chaque chaîne convertie).torch/lua: récupérer le meilleur sous-ensemble de Tensor
Donc scores
devra être trié, et pred
devra être plusieurs lignes/colonnes au lieu de 1 x nqs. Et la valeur score
correspondante pour chaque entrée dans pred
doit être récupérable.
Je ne sais rien de la syntaxe de lua/torch, et toute aide serait grandement appréciée.
nqs=dataset['question']:size(1);
scores=torch.Tensor(nqs,noutput);
qids=torch.LongTensor(nqs);
for i=1,nqs,batch_size do
xlua.progress(i, nqs)
r=math.min(i+batch_size-1,nqs);
scores[{{i,r},{}}],qids[{{i,r}}]=forward(i,r);
end
tmp,pred=torch.max(scores,2);
answer=json_file['ix_to_ans'][tostring(pred[{i,1}])]
print(answer)
N'hésitez pas à me dire si vous trouvez quelque chose de mal ou pas clair dans ma réponse. Merci! – Ash