Dense參數(shù)詳解

Dense參數(shù)介紹

Dense調(diào)用命令:

class Dense(
 units, 
 activation=None, 
 use_bias=True,
 kernel_initializer='glorot_uniform',
 bias_initializer='zeros',
 kernel_regularizer=None,
 bias_regularizer=None,
 activity_regularizer=None,
 kernel_constraint=None, 
bias_constraint=None,
 **kwargs)

我們常用到的參數(shù)有

  • units:設(shè)置該層節(jié)點(diǎn)數(shù),也可以看成對(duì)下一層的輸出披坏。
  • activation:激活函數(shù),在這一層輸出的時(shí)候是否需要激活函數(shù)
  • use_bias:偏置碎节,默認(rèn)帶有偏置。

其他參數(shù)的含義:

  • kernel_initializer:權(quán)重初始化方法
  • bias_initializer:偏置值初始化方法
  • kernel_regularizer:權(quán)重規(guī)范化函數(shù)
  • bias_regularizer:偏置值規(guī)范化方法
  • activity_regularizer:輸出的規(guī)范化方法
  • kernel_constraint:權(quán)重變化限制函數(shù)
  • bias_constraint:偏置值變化限制函數(shù)

units用法

在參數(shù)介紹的時(shí)候就說了units是該層節(jié)點(diǎn)數(shù),只能是正整數(shù)魁索。用法如下:

model.add(layers.Dense(units=10))

這條命令只是定義了這一層有10個(gè)節(jié)點(diǎn)迈勋,沒有激活函數(shù),但是有偏置(偏置是默認(rèn)的)瘫想。但是在第一層需要注意一下仗阅,第一層需要定義輸入數(shù)據(jù)形狀。(x是輸入的數(shù)據(jù))

model.add(layers.Dense(units=10,input_shape = (x.shape[1],)))

activation用法

這個(gè)參數(shù)是用于做非線性變換的国夜。如果是單層網(wǎng)絡(luò)减噪,那么它輸出就是A*X+b的線性輸出。而activation很多這里介紹一些常用的:

  • relu:keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)整流線性單元车吹。使用默認(rèn)值時(shí)筹裕,它返回逐元素的 max(x, 0)否則,它遵循:
    • if x >= max_value:f(x) = max_value
    • elif threshold <= x < max_value:f(x) = x
    • else:f(x) = alpha * (x - threshold)
relu激活函數(shù)
model.add(layers.Dense(units=10,activation='relu'))
  • sigmoid:Sigmoid函數(shù)是一個(gè)在生物學(xué)中常見的S型函數(shù)礼搁,將變量映射到0,1之間饶碘。logistic回歸就是用sigmoid函數(shù)輸出概率值。


    sigmoid激活函數(shù)
model.add(layers.Dense(units=10,activation='sigmoid'))
  • tanh:雙曲正切激活函數(shù)馒吴,這個(gè)與sigmoid的區(qū)別是壓縮到了[-1扎运,1].


    image.png
model.add(layers.Dense(units=10,activation='tanh'))

除了上面的三種激活函數(shù)還有:

  • elu:指數(shù)線性單元。
  • selu:可伸縮的指數(shù)線性單元(SELU)饮戳。
  • softplus:Softplus 激活函數(shù)豪治。
  • softsign:Softsign 激活函數(shù)。
  • hard_sigmoid:Hard sigmoid 激活函數(shù)扯罐,計(jì)算速度比 sigmoid 激活函數(shù)更快负拟。
  • exponential:自然數(shù)指數(shù)激活函數(shù)。
  • linear:線性激活函數(shù)(即不做任何改變)

這個(gè)是keras.activation的中文API:Keras 中文文檔
具體的各個(gè)激活函數(shù)的用法可以參考一下歹河。下面是activation在keras的源代碼有興趣可以研究一下

"""Built-in activation functions.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import six
import warnings
from . import backend as K
from .utils.generic_utils import deserialize_keras_object
from .engine import Layer


def softmax(x, axis=-1):
    """Softmax activation function.

    # Arguments
        x: Input tensor.
        axis: Integer, axis along which the softmax normalization is applied.

    # Returns
        Tensor, output of softmax transformation.

    # Raises
        ValueError: In case `dim(x) == 1`.
    """
    ndim = K.ndim(x)
    if ndim == 2:
        return K.softmax(x)
    elif ndim > 2:
        e = K.exp(x - K.max(x, axis=axis, keepdims=True))
        s = K.sum(e, axis=axis, keepdims=True)
        return e / s
    else:
        raise ValueError('Cannot apply softmax to a tensor that is 1D. '
                         'Received input: %s' % x)


def elu(x, alpha=1.0):
    """Exponential linear unit.

    # Arguments
        x: Input tensor.
        alpha: A scalar, slope of negative section.

    # Returns
        The exponential linear activation: `x` if `x > 0` and
        `alpha * (exp(x)-1)` if `x < 0`.

    # References
        - [Fast and Accurate Deep Network Learning by Exponential
           Linear Units (ELUs)](https://arxiv.org/abs/1511.07289)
    """
    return K.elu(x, alpha)


def selu(x):
    """Scaled Exponential Linear Unit (SELU).

    SELU is equal to: `scale * elu(x, alpha)`, where alpha and scale
    are predefined constants. The values of `alpha` and `scale` are
    chosen so that the mean and variance of the inputs are preserved
    between two consecutive layers as long as the weights are initialized
    correctly (see `lecun_normal` initialization) and the number of inputs
    is "large enough" (see references for more information).

    # Arguments
        x: A tensor or variable to compute the activation function for.

    # Returns
       The scaled exponential unit activation: `scale * elu(x, alpha)`.

    # Note
        - To be used together with the initialization "lecun_normal".
        - To be used together with the dropout variant "AlphaDropout".

    # References
        - [Self-Normalizing Neural Networks](https://arxiv.org/abs/1706.02515)
    """
    alpha = 1.6732632423543772848170429916717
    scale = 1.0507009873554804934193349852946
    return scale * K.elu(x, alpha)


def softplus(x):
    """Softplus activation function.

    # Arguments
        x: Input tensor.

    # Returns
        The softplus activation: `log(exp(x) + 1)`.
    """
    return K.softplus(x)


def softsign(x):
    """Softsign activation function.

    # Arguments
        x: Input tensor.

    # Returns
        The softsign activation: `x / (abs(x) + 1)`.
    """
    return K.softsign(x)


def relu(x, alpha=0., max_value=None, threshold=0.):
    """Rectified Linear Unit.

    With default values, it returns element-wise `max(x, 0)`.

    Otherwise, it follows:
    `f(x) = max_value` for `x >= max_value`,
    `f(x) = x` for `threshold <= x < max_value`,
    `f(x) = alpha * (x - threshold)` otherwise.

    # Arguments
        x: Input tensor.
        alpha: float. Slope of the negative part. Defaults to zero.
        max_value: float. Saturation threshold.
        threshold: float. Threshold value for thresholded activation.

    # Returns
        A tensor.
    """
    return K.relu(x, alpha=alpha, max_value=max_value, threshold=threshold)


def tanh(x):
    """Hyperbolic tangent activation function.

    # Arguments
        x: Input tensor.

    # Returns
        The hyperbolic activation:
        `tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))`

    """
    return K.tanh(x)


def sigmoid(x):
    """Sigmoid activation function.

    # Arguments
        x: Input tensor.

    # Returns
        The sigmoid activation: `1 / (1 + exp(-x))`.
    """
    return K.sigmoid(x)


def hard_sigmoid(x):
    """Hard sigmoid activation function.

    Faster to compute than sigmoid activation.

    # Arguments
        x: Input tensor.

    # Returns
        Hard sigmoid activation:

        - `0` if `x < -2.5`
        - `1` if `x > 2.5`
        - `0.2 * x + 0.5` if `-2.5 <= x <= 2.5`.
    """
    return K.hard_sigmoid(x)


def exponential(x):
    """Exponential (base e) activation function.

    # Arguments
        x: Input tensor.

    # Returns
        Exponential activation: `exp(x)`.
    """
    return K.exp(x)


def linear(x):
    """Linear (i.e. identity) activation function.

    # Arguments
        x: Input tensor.

    # Returns
        Input tensor, unchanged.
    """
    return x


def serialize(activation):
    return activation.__name__


def deserialize(name, custom_objects=None):
    return deserialize_keras_object(
        name,
        module_objects=globals(),
        custom_objects=custom_objects,
        printable_module_name='activation function')


def get(identifier):
    """Get the `identifier` activation function.

    # Arguments
        identifier: None or str, name of the function.

    # Returns
        The activation function, `linear` if `identifier` is None.

    # Raises
        ValueError if unknown identifier
    """
    if identifier is None:
        return linear
    if isinstance(identifier, six.string_types):
        identifier = str(identifier)
        return deserialize(identifier)
    elif callable(identifier):
        if isinstance(identifier, Layer):
            warnings.warn(
                'Do not pass a layer instance (such as {identifier}) as the '
                'activation argument of another layer. Instead, advanced '
                'activation layers should be used just like any other '
                'layer in a model.'.format(
                    identifier=identifier.__class__.__name__))
        return identifier
    else:
        raise ValueError('Could not interpret '
                         'activation function identifier:', identifier)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掩浙,一起剝皮案震驚了整個(gè)濱河市花吟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厨姚,老刑警劉巖衅澈,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谬墙,居然都是意外死亡今布,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門拭抬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來部默,“玉大人,你說我怎么就攤上這事造虎「吊澹” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵累奈,是天一觀的道長(zhǎng)贬派。 經(jīng)常有香客問我,道長(zhǎng)澎媒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任波桩,我火速辦了婚禮戒努,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘镐躲。我一直安慰自己储玫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布萤皂。 她就那樣靜靜地躺著撒穷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裆熙。 梳的紋絲不亂的頭發(fā)上端礼,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音入录,去河邊找鬼蛤奥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛僚稿,可吹牛的內(nèi)容都是我干的凡桥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蚀同,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼缅刽!你這毒婦竟也來了啊掏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衰猛,失蹤者是張志新(化名)和其女友劉穎迟蜜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腕侄,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡小泉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冕杠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片微姊。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖分预,靈堂內(nèi)的尸體忽然破棺而出兢交,到底是詐尸還是另有隱情,我是刑警寧澤笼痹,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布配喳,位于F島的核電站,受9級(jí)特大地震影響凳干,放射性物質(zhì)發(fā)生泄漏晴裹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一救赐、第九天 我趴在偏房一處隱蔽的房頂上張望涧团。 院中可真熱鬧,春花似錦经磅、人聲如沸泌绣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阿迈。三九已至,卻和暖如春轧叽,著一層夾襖步出監(jiān)牢的瞬間苗沧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工犹芹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崎页,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓腰埂,卻偏偏與公主長(zhǎng)得像飒焦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348