tf.keras.layers.Dense
| Просмотреть исходный код на GitHub |
Обычный плотно связанный слой нейронной сети.
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
)
Dense реализует операцию: output = activation(dot(input, kernel) + bias), где activation — функция активации, применяемая поэлементно в качестве аргумента activation, kernel — матрица весов, созданная слоем, и bias — вектор смещений, созданный слоем (применима только если use_bias равен True). Все эти атрибуты относятся к Dense.
Примечание: Если вход в слой имеет ранг больше 2, тоDenseвычисляет скалярное произведение междуinputsиkernelпо последней осиinputsи оси 0kernel(используяtf.tensordot). Например, если вход имеет размерность(batch_size, d0, d1), то мы создаёмkernelс формой(d1, units), а операцияkernelвыполняется вдоль оси 2input, для каждого подтензора с формой(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_initializer | Инициализатор матрицы весов kernel. |
bias_initializer | Инициализатор вектора смещений. |
kernel_regularizer | Функция регуляризации, применяемая к матрице весов kernel. |
bias_regularizer | Функция регуляризации, применяемая к вектору смещений. |
activity_regularizer | Функция регуляризации, применяемая к выходу слоя (его "активации"). |
kernel_constraint | Функция ограничения, применяемая к матрице весов kernel. |
bias_constraint | Функция ограничения, применяемая к вектору смещений. |
Форма входа:
N-мерный тензор с формой: (batch_size, ..., input_dim). Наиболее распространённый случай — 2D вход с формой (batch_size, input_dim).
Форма выхода:
N-мерный тензор с формой: (batch_size, ..., units). Например, для 2D входа с формой (batch_size, input_dim), выход будет иметь форму (batch_size, units).
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/layers/Dense