Question

Je suis actuellement à comprendre luttais comment je dois former mon réseau de régression en utilisant keras. Je ne sais pas comment je devrais passer mes données d'entrée au réseau.

Tant les données d'entrée et les données de sortie sont stockées en tant que liste de réseaux numpy.

Chaque réseau de numpy d'entrée est une matrice qui a (400 lignes, colonnes x) Chaque matrice de numpy de sortie est une matrice qui a (x nombre de lignes, 13 colonnes)

dimension d'entrée est de 400 et la sortie est 13. Mais comment puis-je passer chacun de ces ensembles au sein de la liste à la formation?

# Multilayer Perceptron
model = Sequential()    # Feedforward
model.add(Dense(3, input_dim=400, output_dim=13))
model.add(Activation('tanh'))
model.add(Dense(1))
model.compile('sgd', 'mse')

Je sais que les trains de model.fit le modèle étant donné le paramètre, comment il prend effectivement dans les données me semble un peu comme par magie, et comment il sait que les colonnes de la matrice A doivent être mis en correspondance les lignes de la matrice B ce doit être fait pour toute la matrice, jointe à la liste.

Était-ce utile?

La solution

Si vous regardez la documentation Keras, vous observerez que pour les premières couches du modèle séquentiel prend l'entrée nécessaire. Ainsi, par exemple, la première couche est épaisse couche avec la dimension d'entrée 400. Par conséquent chaque entrée doit être un tableau numpy de taille 400. Vous pouvez passer un tableau numpy 2D avec la taille (x, 400). (Je suppose que x est le nombre d'exemples d'entrée). Votre sortie a 13 dimensions pour chaque document de sortie et donc votre couche finale Dense doit être model.add(Dense(13)) au lieu de model.add (Dense (1)).

Venir à la façon dont il sait, il prend la première dimension de X comme nombre d'exemples de formation et de deuxième dimension que la taille de chaque exemple. De même pour la couche de sortie.

Licencié sous: CC-BY-SA avec attribution
scroll top