Je voudrais utiliser les ANN pour mon problème, mais le problème est que mes numéros de nœuds d'entrées et de sorties ne sont pas fixes.
J'ai fait une recherche Google avant de poser ma question et j'ai découvert que le RNN peut m'aider avec mon problème. Mais, tous les exemples que j'ai trouvés ont en quelque sorte un nombre défini de nœuds d'entrée et de sortie.
Donc, je cherche une stratégie, comment la concrétiser ou au moins quelques exemples, préférables à Keras ou PyTorch.
Plus de détails sur mon problème:
J'ai deux listes d'entrées, où la longueur de la première est fixe et égale deux, par exemple:
in_1 = [2,2]
mais la longueur de la deuxième liste est flexible, la longueur peut être de trois à inf, fe:
in_2 = [1,1,2,2]
ou
in_2 = [1,1,1,2,2,2,3,3,3]
De plus, les listes d'entrée dépendent les unes des autres. La première liste montre la dimension de la liste de sortie. Donc, si in_1 = [2,2], cela signifie que la sortie doit avoir la possibilité d'être remodelée sous la forme [2,2].
Actuellement, je pense combiner deux listes d'entrées en une seule:
in = in_1 + in_2 = [2, 2, 1, 1, 2, 2]
De plus, la sortie a la même longueur que la liste in_2 , fi:
si les listes d'entrée sont:
in_1 = [2, 2]
in_2 = [1, 1, 2, 2]
La sortie doit être:
out = [1, 2, 1, 2]
Toutes les idées sont les bienvenues!
Je pense que vous avez peut-être mal compris le nombre fixe d'entrées pour le RNN. Il s'agit du nombre d'entrées par pas de temps . Tous vos exemples ont un nombre fixe d'entrées par pas de temps: 1! Vous les alimentez un par un à votre réseau de neurones, en terminant avec un jeton spécial "fin" (vous pouvez toujours avoir une deuxième entrée pour cela). Apprenez-lui à ne donner aucune sortie jusqu'à ce qu'il voit le jeton de fin, puis à sortir les composants du résultat un par un, en terminant par un jeton de sortie de fin spécial.
la source
Sachant que la première liste est à peu près invariante (décrivant simplement une certaine géométrie), vous pouvez également essayer de créer de nombreux NN spécialisés différents pour chaque configuration in_1 distincte et utiliser uniquement in_2 pour alimenter le réseau.
Donc, in_1 pourrait conduire différents réseaux.
Dans un premier temps, vous déterminez la configuration (c'est-à-dire la création d'un dict), puis formez / alimentez les réseaux spécialisés en conséquence.
la source