簡體   English   中英

Keras中密集層和激活層之間的區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM