Keras 2 API 文件 / 層 API / 核心層 / 密集層

密集層

[原始碼]

Dense 類別

tf_keras.layers.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
)

只是您常用的全連接 NN 層。

Dense 實作了以下運算:output = activation(dot(input, kernel) + bias),其中 activation 是以元素為單位的激活函數,作為 activation 參數傳遞,kernel 是由層建立的權重矩陣,而 bias 是由層建立的偏差向量(僅在 use_biasTrue 時適用)。這些都是 Dense 的屬性。

注意:如果層的輸入具有大於 2 的秩,則 Dense 會沿著 inputs 的最後一個軸和 kernel 的軸 0 計算 inputskernel 之間的點積(使用 tf.tensordot)。例如,如果輸入的維度為 (batch_size, d0, d1),那麼我們建立一個形狀為 (d1, units)kernel,並且 kernelinput 的軸 2 上操作,在每個形狀為 (1, 1, d1) 的子張量上(有 batch_size * d0 個這樣的子張量)。在這種情況下,輸出將具有形狀 (batch_size, d0, units)

此外,在層被呼叫一次後,層屬性無法修改(trainable 屬性除外)。當傳遞常用的關鍵字參數 input_shape 時,keras 會建立一個輸入層以插入到當前層之前。這可以被視為等同於明確定義 InputLayer

範例

>>> # Create a `Sequential` model and add a Dense layer as the first layer.
>>> model = tf.keras.models.Sequential()
>>> model.add(tf.keras.Input(shape=(16,)))
>>> model.add(tf.keras.layers.Dense(32, activation='relu'))
>>> # Now the model will take as input arrays of shape (None, 16)
>>> # and output arrays of shape (None, 32).
>>> # Note that after the first layer, you don't need to specify
>>> # the size of the input anymore:
>>> model.add(tf.keras.layers.Dense(32))
>>> model.output_shape
(None, 32)

參數

  • units:正整數,輸出空間的維度。
  • activation:要使用的激活函數。如果您沒有指定任何內容,則不會應用激活函數(即「線性」激活:a(x) = x)。
  • use_bias:布林值,表示該層是否使用偏差向量。
  • kernel_initializerkernel 權重矩陣的初始化器。
  • bias_initializer:偏差向量的初始化器。
  • kernel_regularizer:應用於 kernel 權重矩陣的正規化函數。
  • bias_regularizer:應用於偏差向量的正規化函數。
  • activity_regularizer:應用於層輸出的正規化函數(其「激活」)。
  • kernel_constraint:應用於 kernel 權重矩陣的約束函數。
  • bias_constraint:應用於偏差向量的約束函數。

輸入形狀

具有形狀的 N 維張量:(batch_size, ..., input_dim)。最常見的情況是具有形狀 (batch_size, input_dim) 的二維輸入。

輸出形狀

具有形狀的 N 維張量:(batch_size, ..., units)。例如,對於形狀為 (batch_size, input_dim) 的二維輸入,輸出將具有形狀 (batch_size, units)