web-dev-qa-db-fra.com

Keras confusion sur le nombre de couches

Je suis un peu confus quant au nombre de couches utilisées dans les modèles Keras. La documentation est plutôt opaque en la matière.

Selon Jason Brownlee, la première couche se compose techniquement de deux couches, la couche d'entrée, spécifiée par input_dim Et une couche cachée. Voir les premières questions sur son blog .

Dans toute la documentation Keras, la première couche est généralement spécifiée comme model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function)).

Le modèle le plus élémentaire que nous pourrions faire serait donc:

 model = Sequential()
 model.add(Dense(1, input_dim = 100, activation = None))

Ce modèle consiste-t-il en une seule couche, où une entrée à 100 dimensions passe par un neurone à entrée unique, ou est-il composé de deux couches, d'abord une couche d'entrée à 100 dimensions et ensuite une couche cachée à 1 dimension?

De plus, si je devais spécifier un modèle comme celui-ci, combien de couches a-t-il?

model = Sequential()
model.add(Dense(32, input_dim = 100, activation = 'sigmoid'))
model.add(Dense(1)))

S'agit-il d'un modèle avec 1 couche d'entrée, 1 couche cachée et 1 couche de sortie ou est-ce un modèle avec 1 couche d'entrée et 1 couche de sortie?

25
Tom Davidson

Pour votre première question, le modèle est:

1 couche d'entrée et 1 couche de sortie.

Pour la deuxième question:

1 couche d'entrée

1 couche cachée

1 couche d'activation (la sigmoïde)

1 couche de sortie

Pour la couche d'entrée, ceci est résumé par Keras avec l'argument input_dim ou input_shape, mais vous pouvez trouver cette couche dans:

from keras.layers import Input

Idem pour la couche d'activation.

from keras.layers import Activation
12
Pusheen_the_dev

Votre premier consiste en une couche d'entrée de 100 neurones connectée à un seul neurone de sortie

Votre deuxième est composé d'une couche d'entrée de 100 neurones, d'une couche cachée de 32 neurones et d'une couche de sortie d'un seul neurone.

Vous devez considérer votre première couche comme votre couche d'entrée (avec le même nombre de neurones que le dimenson, donc 100 pour vous) connectée à une autre couche avec autant de neurones que vous spécifiez (1 dans votre premier cas, 32 dans le second une)

En Keras ce qui est utile c'est la commande

model.summary()
21
Nathan