![](/img/trans.png)
[英]what is the difference between using softmax as a sequential layer in tf.keras and softmax as an activation function for a dense layer?
[英]Difference between Dense and Activation layer in Keras
我想知道 Keras 中的激活層和密集層有什么區別。
由於 Activation Layer 似乎是一個全連接層,並且 Dense 有一個參數來傳遞一個激活函數,那么最佳實踐是什么?
讓我們想象一個這樣的虛構網絡: Input -> Dense -> Dropout -> Final Layer 最后一層應該是: Dense(activation=softmax) 或 Activation(softmax) ? 什么是最干凈的,為什么?
謝謝大家!
使用Dense(activation=softmax)
在計算上等同於首先添加Dense
然后添加Activation(softmax)
。 但是,第二種方法有一個優點 - 您可以從這種定義的模型中檢索最后一層(激活之前)的輸出。 在第一種方法中 - 這是不可能的。
正如@MarcinMożejko 所說,它是等價的。 我只想解釋為什么。 如果您查看Dense
Keras 文檔頁面,您會看到默認激活函數是None
。
一個密集層在數學上是:
a = g(W.T*a_prev+b)
其中g
是一個激活函數。 使用Dense(units=k, activation=softmax)
,它會一次性計算所有數量。 在做Dense(units=k)
和 Activation('softmax) 時,它首先計算數量, WT*a_prev+b
(因為默認激活函數是None
),然后將指定為輸入的激活函數應用到Activation
層計算出的數量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.