2017-07-26 6 views
8

Ich bin ein wenig verwirrt über die Anzahl der Schichten, die in Keras-Modelle verwendet werden. Die Dokumentation ist in dieser Angelegenheit eher undurchsichtig.Keras Verwirrung über die Anzahl der Schichten

Laut Jason Brownlee besteht die erste Schicht technisch aus zwei Schichten, der Eingangsebene, spezifiziert durch input_dim und einer versteckten Schicht. Siehe die ersten Fragen unter his blog. In der gesamten Keras-Dokumentation wird die erste Schicht allgemein als model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function)) angegeben.

Die einfachste Modell würden wir machen könnte daher sein:

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

Ist dieses Modell aus einer einzigen Schicht bestehen, wobei 100 dimensionalen Eingang über einen einzigen Eingang Neuron übergeben wird, oder es aus zwei Schichten nicht bestehen , zuerst eine 100-dimensionale Eingabeschicht und zweitens eine 1-dimensionale versteckte Schicht?

Weiter, wenn ich ein Modell wie dieses angeben würde, wie viele Schichten hat es?

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

Ist das ein Modell mit 1 Eingangsschicht, 1 versteckter Schicht und 1 Ausgangsschicht oder ist dies ein Modell mit 1 Eingangsschicht und 1 Ausgangsschicht?

Antwort

5

Für die erste Frage ist, ist das Modell:

1 der Eingangsschicht und der Ausgangsschicht 1.

Für die zweite Frage:

1 Eingangsschicht

1 verborgene Schicht

1 Aktivierungsschicht (Die Sigmoid-one)

1 Ausgangsschicht

Für die Eingangsschicht Dies wird von Keras mit dem input_dim arg oder input_shape abstrahiert, aber Sie finden diesen Layer in:

from keras.layers import Input 

Das gleiche für die Aktivierungsschicht.

from keras.layers import Activation 
+0

Basierend auf der anderen Antwort bin ich nicht ganz sicher, dass Sie mit dem ersten Modell recht haben. Ich denke, es ist nur eine Eingabeschicht und eine einzige Ausgabeschicht ohne versteckte Ebenen. Ich denke, dass du mit dem zweiten Modell recht hast. –

+0

Hi, tatsächlich habe ich es zu schnell geschrieben. Es besteht aus 1 Eingabeschicht (100 Neuronen) und einer Ausgabeschicht. (Bestehend aus 1 Neuron) Ich werde es bearbeiten –

+0

Danke für die Klärung –

10

Ihre erste besteht aus einer 100 Neuronen der Eingangsschicht verbunden, um einen einzigen Ausgangsneuron

Ihre zweite besteht aus einer 100 Neuronen der Eingangsschicht, einer verborgenen Schicht mit 32 Neuronen und eine Ausgabeschicht von einem einzelnen Neuron.

Sie müssen sich Ihre erste Schicht als Ihre Eingangsschicht vorstellen (mit der gleichen Anzahl von Neuronen wie die Dimenson, also 100 für Sie), die mit einer anderen Schicht mit so vielen Neuronen verbunden ist (1 im ersten Fall). 32 in der zweiten)

in Keras, was nützlich ist, der Befehl

model.summary() 
+0

schlagen Sie mich zu "model.summary" vorschlagen;) es ist ein Lebensretter und ich kann es sehr empfehlen, zu OP. –

+0

Awesome, danke für die Hilfe –