Gostaria de usar ANNs para o meu problema, mas o problema é que minhas entradas e saídas não são corrigidas.
Eu fiz algumas pesquisas no google antes de fazer minha pergunta e descobri que a RNN pode me ajudar com o meu problema. Mas todos os exemplos que encontrei de alguma forma definiram o número de nós de entrada e saída.
Então, estou procurando uma estratégia, como torná-la real ou, pelo menos, alguns exemplos, preferível em Keras ou PyTorch.
Mais detalhes sobre o meu problema:
Eu tenho duas listas de entradas, onde o comprimento do primeiro é fixo e é igual a dois, fe:
in_1 = [2,2]
mas o comprimento da segunda lista é flexível, o comprimento pode ser de três a inf, fe:
in_2 = [1,1,2,2]
ou
in_2 = [1,1,1,2,2,2,3,3,3]
Além disso, as listas de entrada dependem uma da outra. A primeira lista mostra a dimensão da lista de saída. Portanto, se in_1 = [2,2], significa que a saída deve ter a possibilidade de ser remodelada para a forma [2,2].
Atualmente, estou pensando em combinar duas listas de entrada em uma:
in = in_1 + in_2 = [2, 2, 1, 1, 2, 2]
Além disso, a saída tem o mesmo comprimento que a lista in_2 , fi:
se as listas de entrada são:
in_1 = [2, 2]
in_2 = [1, 1, 2, 2]
A saída deve ser:
out = [1, 2, 1, 2]
Todas as idéias são bem-vindas!
Eu acho que você pode ter entendido mal o número fixo de entradas para a RNN. Este é o número de entradas por timestep . Todos os seus exemplos têm um número fixo de entradas por timestep: 1! Você os alimenta um de cada vez à sua rede neural, finalizando com um token "final" especial (você sempre pode ter uma segunda entrada para isso). Ensine a não dar saída até que veja o token final e, em seguida, a saída dos componentes do resultado, um de cada vez, terminando com um token final de saída especial.
fonte
Sabendo que a primeira lista é praticamente invariável (apenas descrevendo uma determinada geometria), você também pode tentar criar muitos NN especializados e diferentes para cada configuração in_1 distinta e usar apenas in_2 para alimentar a rede.
Assim, in_1 poderia gerar redes diferentes.ie
Em uma primeira etapa, você determina a configuração (isto é, cria um ditado) e treina / alimenta as redes especializadas de acordo.
fonte