2017-05-28 70 views
1

下面的代碼是代表一層還是兩層?我很困惑,因爲不存在也應該是神經網絡中的輸入層?TF薄層數

input_layer = slim.fully_connected(input, 6000, activation_fn=tf.nn.relu) 
output = slim.fully_connected(input_layer, num_output) 

那是否包含隱藏層?我只是想能夠看到網絡。提前致謝!

回答

1

enter image description here隱藏尺寸的層

你有一個隱藏層的神經網絡。在您的代碼中,input對應於上圖中的'輸入'圖層。 input_layer是圖像所稱的「隱藏」。 output就是圖片所說的'輸出'。

請記住,神經網絡的「輸入層」不是傳統的完全連接層,因爲它只是原始數據而沒有激活。這有點不恰當。輸入圖層中上圖中的那些神經元與隱藏層或輸出層中的神經元不同。

+0

謝謝!現在有道理!那麼,我所擁有的代碼會代表你提出的3層神經網絡嗎? – dooder

+0

正確。輸入大小是代碼中'input'的大小。隱藏層的大小爲6000.輸出層的大小爲「num_output」。 –

0

tensorflow-slim

此外,TF-Slim的slim.stack運營商允許調用者重複應用使用不同的參數相同的操作來創建層的堆疊或塔。 slim.stack還爲每個創建的操作創建一個新的tf.variable_scope。例如,一個簡單的方法來創建一個多層感知器(MLP):

# Verbose way: 
x = slim.fully_connected(x, 32, scope='fc/fc_1') 
x = slim.fully_connected(x, 64, scope='fc/fc_2') 
x = slim.fully_connected(x, 128, scope='fc/fc_3') 

# Equivalent, TF-Slim way using slim.stack: 
slim.stack(x, slim.fully_connected, [32, 64, 128], scope='fc') 

因此,這裏所提到的網絡是一個[32, 64,128]網絡 - 具有64

+0

謝謝你的評論!那麼,32個神經元代表輸入層?假設我們有1000個功能的輸入。這是不是意味着輸入層必須將1000個特徵壓縮爲輸入層的32個神經元?在那之後,從輸入層到第一個隱藏層是否會有32x64的權重連接?對不起,我只是想明白這一點! – dooder

+0

@dooder問題總是很好!但是我不能回答這個問題,因爲我從來沒有使用過Tensorflow。所以我不知道價值如何凝聚。但是,如果你有32層神經元和64層神經元,連接數量確實是32 * 64. –