Je regarde l'exemple de deeplearning 4j pour classer les critiques de films selon leur sentiment. ReviewExampleDeeplearning4j: Exemple LSTM pour l'analyse du sentiment de révision
À la ligne 124-142 les tableaux N dimensions sont créés et je suis un peu incertain ce qui se passe à ces lignes:
Ligne 132:
features.put(new INDArrayIndex[]{NDArrayIndex.point(i),
NDArrayIndex.all(), NDArrayIndex.point(j)}, vector);
je peux l'image que .point(x)
et .point(j)
adresse la cellule dans le tableau, mais que fait exactement l'appel NDArrayIndex.all()
ici?
Alors que la construction du tableau de fonction est plus ou moins ok ce qui se passe là-bas que je reçois totalement confus par le masque d'étiquette et cette variable lastIdx
la ligne 138 - 142
int idx = (positive[i] ? 0 : 1);
int lastIdx = Math.min(tokens.size(),maxLength);
labels.putScalar(new int[]{i,idx,lastIdx-1},1.0); //Set label: [0,1] for negative, [1,0] for positive
labelsMask.putScalar(new int[]{i,lastIdx-1},1.0); //Specify that an output exists at the final time step for this example
Le tableau de l'étiquette elle-même adressée par i, idx
par exemple colonne/ligne qui est définie à 1.0 - mais je ne comprends pas vraiment comment cette information de temps-étape s'inscrit? Est-ce conventionnel que le dernier paramètre doit marquer la dernière entrée?
Alors pourquoi le labelMask utilise-t-il seulement i
et non i, idx
?
Merci pour les explications ou pointeur qui aident à clarifier certaines de mes questions