激活函數keras.Activation


激活函數的用法

激活函數可以通過設置單獨的 Activation 層實現,也可以在構造層對象時通過傳遞 activation 參數實現:

from keras.layers import Activation, Dense

model.add(Dense(64))
model.add(Activation('tanh'))

等價於:

model.add(Dense(64, activation='tanh'))

你也可以通過傳遞一個逐元素運算的 Theano/TensorFlow/CNTK 函數來作為激活函數:

from keras import backend as K

model.add(Dense(64, activation=K.tanh))
model.add(Activation(K.tanh))

預定義激活函數

elu

keras.activations.elu(x, alpha=1.0)

指數線性單元。

參數

  • x:輸入張量。
  • alpha:一個標量,表示負數部分的斜率。

返回

線性指數激活:如果 x > 0,返回值為 x;如果 x < 0 返回值為 alpha * (exp(x)-1)

參考文獻


softmax

keras.activations.softmax(x, axis=-1)

Softmax 激活函數。

參數

  • x:輸入張量。
  • axis:整數,代表 softmax 所作用的維度。

返回

softmax 變換后的張量。

異常

  • ValueError:如果 dim(x) == 1

selu

keras.activations.selu(x)

可伸縮的指數線性單元(SELU)。

SELU 等同於:scale * elu(x, alpha),其中 alpha 和 scale 是預定義的常量。只要正確初始化權重(參見 lecun_normal 初始化方法)並且輸入的數量「足夠大」(參見參考文獻獲得更多信息),選擇合適的 alpha 和 scale 的值,就可以在兩個連續層之間保留輸入的均值和方差。

參數

  • x: 一個用來用於計算激活函數的張量或變量。

返回

可伸縮的指數線性激活:scale * elu(x, alpha)

注意

  • 與「lecun_normal」初始化方法一起使用。
  • 與 dropout 的變種「AlphaDropout」一起使用。

參考文獻


softplus

keras.activations.softplus(x)

Softplus 激活函數。

參數

  • x: 輸入張量。

返回

Softplus 激活:log(exp(x) + 1)


softsign

keras.activations.softsign(x)

Softsign 激活函數。

參數

  • x: 輸入張量。

返回

Softsign 激活:x / (abs(x) + 1)


relu

keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)

整流線性單元。

使用默認值時,它返回逐元素的 max(x, 0)

否則,它遵循:

  • 如果 x >= max_valuef(x) = max_value
  • 如果 threshold <= x < max_valuef(x) = x
  • 否則:f(x) = alpha * (x - threshold)

參數

  • x: 輸入張量。
  • alpha:負數部分的斜率。默認為 0。
  • max_value:輸出的最大值。
  • threshold: 浮點數。Thresholded activation 的閾值值。

返回

一個張量。


tanh

keras.activations.tanh(x)

雙曲正切激活函數。

參數

  • x: 輸入張量。

返回

雙曲正切激活函數:
tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))


sigmoid

sigmoid(x)

Sigmoid 激活函數。

參數

  • x: 輸入張量.

返回

Sigmoid激活函數: 1 / (1 + exp(-x)).


hard_sigmoid

hard_sigmoid(x)

Hard sigmoid 激活函數。

計算速度比 sigmoid 激活函數更快。

參數

  • x: 輸入張量。

返回

Hard sigmoid 激活函數:

  • 如果 x < -2.5,返回 0
  • 如果 x > 2.5,返回 1
  • 如果 -2.5 <= x <= 2.5,返回 0.2 * x + 0.5

exponential

keras.activations.exponential(x)

自然數指數激活函數。


linear

keras.activations.linear(x)

線性激活函數(即不做任何改變)

參數

  • x: 輸入張量。

返回

輸入張量,不變。

高級激活函數

對於 Theano/TensorFlow/CNTK 不能表達的復雜激活函數,如含有可學習參數的激活函數,可通過高級激活函數實現,可以在 keras.layers.advanced_activations 模塊中找到。 這些高級激活函數包括 PReLULeakyReLU


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM