2017-07-26 81 views
8

我對Keras模型中使用的層數有點困惑。文件在這件事上相當不透明。關於層數的Keras混淆

根據Jason Brownlee的說法,第一層技術上由兩層組成,輸入層由input_dim指定,並有一個隱藏層。請參閱his blog上的第一個問題。

在所有Keras文檔中,第一層通常指定爲 model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function))

我們可以做出最基本的模型將因此會:

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

請問這個模型包括單層,其中100維輸入是通過一個單一的輸入神經元傳遞的,或者它由兩層,首先是100維輸入層和第二個1維隱藏層?

此外,如果我要指定一個這樣的模型,它有多少層?

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

這是一個有1個輸入層,1個隱藏層和1個輸出層的模型,還是這個模型有1個輸入層和1個輸出層?

回答

5

對於第一個問題,該模型是:

1輸入層和1個輸出層。

對於第二個問題:

1輸入層

1隱藏層

1活化層(乙狀結腸一個)

1輸出層

對於輸入層,這是由Keras用input_dim arg或input_shape抽象出來的,但您可以在以下位置找到該圖層:

from keras.layers import Input 

相同的激活層。

from keras.layers import Activation 
+0

基於另一個答案,我不完全確定你是對的第一個模型。我認爲它只是一個輸入層和一個沒有任何隱藏層的輸出層。儘管如此,我認爲你對第二個模型是正確的。 –

+0

嗨,的確,我寫得太快了。 它由1個輸入層(100個神經元)和一個輸出層組成。 (由1個神經元組成) 我要編輯它 –

+0

感謝您澄清 –

10

你的第一種包括連接到一個單一輸出神經元

你的第二個由100層的神經元的輸入層的100層的神經元的輸入層,32個神經元的一個隱藏層和一個單神經元的一個輸出層。

您必須將您的第一層視爲您的輸入圖層(具有與dimenson相同數量的神經元,因此您的100個神經元)連接到另一個圖層,其中包含您指定的神經元數量(第一個情況爲1,在第二個)

在Keras什麼是有用的32是命令

model.summary() 
+0

打我提議'model.summary';)這是一個救生員,我會強烈推薦給OP。 –

+0

真棒,感謝您的幫助 –