2017-07-26 97 views
8

Jestem nieco zdezorientowany co do liczby warstw używanych w modelach Keras. Dokumentacja jest raczej nieprzejrzysta w tej sprawie.Keras zamieszanie dotyczące liczby warstw

Według Jasona Brownlee pierwsza warstwa składa się z dwóch warstw, warstwy wejściowej, określonej przez input_dim i warstwy ukrytej. Zobacz pierwsze pytania na temat his blog.

We wszystkich dokumentach Keras pierwsza warstwa jest ogólnie określana jako model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function)).

Najbardziej podstawowy model mogliśmy zrobić byłoby zatem:

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

Czy model ten składają się z pojedynczej warstwy, w której 100 Wejście wymiarowa jest przekazywana za pośrednictwem jednego wejścia neuronu, czy też składa się z dwóch warstw , najpierw 100-wymiarowa warstwa wejściowa, a druga 1-wymiarowa ukryta warstwa?

Co więcej, jeśli mam określić taki model, to ile ma warstw?

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

Jest to model z 1 warstwy wejściowej, 1 warstwie ukrytej oraz 1 warstwy wyjściowej lub jest to model z 1 warstwy wejściowej i 1 warstwy wyjściowej?

Odpowiedz

5

na swoim pierwszym pytaniu model to: warstwa

1 wejście i 1 wyjście warstwa.

do drugiego pytania:

1 warstwa wejściowa

jeden ukryty warstwa

1 warstwa aktywacji (sigmoidalna jeden)

1 warstwę wyjściową

Dla warstwy wejściowego , to jest wyabstrahowane przez Keras z argumentem input_dim arg lub input_shape, ale możesz znaleźć tę warstwę w:

from keras.layers import Input 

To samo dotyczy warstwy aktywacyjnej.

from keras.layers import Activation 
+0

Na podstawie innej odpowiedzi nie jestem całkowicie pewien, że masz rację co do pierwszego modelu. Myślę, że jest to tylko jedna warstwa wejściowa i jedna warstwa wyjściowa bez żadnych ukrytych warstw. Myślę jednak, że masz rację co do drugiego modelu. –

+0

Cześć, naprawdę, napisałem to zbyt szybko. Składa się z 1 warstwy wejściowej (100 neuronów) i jednej warstwy wyjściowej. (Składa się z 1 neuronu) Zamierzam go edytować –

+0

Dzięki za wyjaśnienie –

10

Pierwszym z nich składa się z 100 neuronów warstwy wejściowej połączona do jednego neuronu wyjściowego

Twój drugi składa się z 100 neuronów warstwy wejściowej, jeden ukryty warstwa 32 neuronów i jednej warstwy wyjście jednego neuronu.

Musisz myśleć o swojej pierwszej warstwie jako warstwie wejściowej (z taką samą liczbą neuronów, co dimenson, czyli 100 dla ciebie) połączonej z inną warstwą z tylu neuronami, ile podałeś (1 w pierwszym przypadku, 32 w drugim)

w Keras co jest przydatne jest polecenie

model.summary() 
+0

pobili mnie, sugerując 'model.summary';) to ratownik i zdecydowanie polecam OP. –

+0

Awesome, dzięki za pomoc –