J'ai le code suivant writtein dans lua.Supprimer l'article de torch.Tensor
Je voudrais obtenir des indices pour N scores maximum de scores
et leurs scores correspondants.
Il semble que je vais devoir itérativement supprimer la valeur maximale actuelle de scores
et récupérer le maximum à nouveau, mais ne trouve pas un moyen approprié de le faire.
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);
-- print(scores)
end
tmp,pred=torch.max(scores,2);
pourriez-vous élaborer sur la partie "tranche val et id de la fin pour trouver les valeurs N"? – ytrewq
Je veux dire tout comme 'val [{{1}, {val: taille (2) -N + 1, val: taille (2)}}]' et la même chose avec 'id', puisque les plus grands éléments' N' sont à la fin du tenseur trié. – Ash
Notez que cela ne résout pas le problème des doublons (je veux dire si "scores" contient, * par exemple *, deux fois la valeur maximale de, disons, "100"), mais je suppose que ce n'est pas un problème car mentionné dans votre question. – Ash