2017-08-15 20 views
1

如果我只是用這樣的單層:tf.layers.dense是單層嗎?

layer = tf.layers.dense(tf_x, 1, tf.nn.relu) 

這只是一個單一節點的單層?

或者它實際上是一組層(輸入,隱藏,輸出)與1節點?我的網絡似乎只用1層就能正常工作,所以我對設置感到好奇。

因此,下面的設置是否有2個隱藏層(這兩個隱藏層都是​​和layer2)?或者實際上只有1個(只是layer 1)?

layer1 = tf.layers.dense(tf_x, 10, tf.nn.relu) 
layer2 = tf.layers.dense(layer1, 1, tf.nn.relu) 

tf_x是我的輸入特徵張量。

+1

至於你的問題的第二部分,layer1將被稱爲隱藏層,layer2將是輸出層。爲了調查圖形的樣子,請嘗試在張力板中加載圖形。 –

+0

這也是我認爲我也理解的。但它與@ChristianFei在下面的答案中所說的不同。你的回答意味着,在第一部分中,'layer'將同時是一個隱藏層和一個輸出層?或者只是一個輸出層? – sandboxj

回答

1

tf.layers.dense增加了單層到您的網絡。第二個參數是圖層的神經元/節點的數量。例如:

# no hidden layers, dimension output layer = 1 
output = tf.layers.dense(tf_x, 1, tf.nn.relu) 

# one hidden layer, dimension hidden layer = 10, dimension output layer = 1 
hidden = tf.layers.dense(tf_x, 10, tf.nn.relu) 
output = tf.layers.dense(hidden, 1, tf.nn.relu) 

我的網絡似乎只用1層正常工作,所以我很好奇的設置。

這是可能的,對於一些任務你會得到體面的結果沒有隱藏層。

0

tf.layers.dense只有一層有一定數量的節點。您可以在TensorFlow網站查詢有關tf.layers.dense

layer1 = tf.layers.dense(inputs=pool2_flat, units=1024, activation=tf.nn.relu) 
layer2 = tf.layers.dense(inputs=layer1, units=1024, activation=tf.nn.relu) 

我希望這將幫助你:)

+0

您的安裝程序現在是否有一個或兩個隱藏層?如果它的tf.layer.dense只是一層,那麼正確的答案是:一個隱藏層,或者? – sandboxj

+0

來自上一層(pool2_flat)的輸入。 隱藏層,1024個節點。 隱藏層,1024個節點。 所以有2個隱藏層,每個1024個節點 –

+0

我不明白。我已經瞭解到,神經網絡的層是這樣設置的:http://cs231n.github.io/assets/nn1/neural_net2.jpeg。在這種情況下,「layer2」不是「輸出層」嗎? – sandboxj