Keras 3 API 文档 / 层 API / 核心层 / 全连接层

全连接层

[source]

Dense class

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,
    lora_rank=None,
    **kwargs
)

只是一个常规的密集连接神经网络层.

Dense 实现了以下操作: output = activation(dot(input, kernel) + bias) 其中 activation 是作为 activation 参数传递的逐元素激活函数,kernel 是由层创建的权重矩阵,bias 是由层创建的偏置向量(仅在 use_biasTrue 时适用).

注意:如果层的输入的秩大于 2,Dense 会在 inputskernel 的最后一个轴上计算点积(使用 tf.tensordot).例如,如果输入的维度为 (batch_size, d0, d1),那么我们创建一个形状为 (d1, units)kernel,并且 kernel 在输入的轴 2 上操作,对每个形状为 (1, 1, d1) 的子张量(有 batch_size * d0 个这样的子张量).在这种情况下,输出将具有形状 (batch_size, d0, units).

参数: units: 正整数,输出空间的维度. activation: 要使用的激活函数. 如果你不指定任何内容,则不应用激活函数 (即"线性”激活:a(x) = x). use_bias: 布尔值,层是否使用偏置向量. kernel_initializer: kernel 权重矩阵的初始化器. bias_initializer: 偏置向量的初始化器. kernel_regularizer: 应用于 kernel 权重矩阵的正则化函数. bias_regularizer: 应用于偏置向量的正则化函数. activity_regularizer: 应用于层输出(其"激活”)的正则化函数. kernel_constraint: 应用于 kernel 权重矩阵的约束函数. bias_constraint: 应用于偏置向量的约束函数. lora_rank: 可选整数.如果设置,层的前向传递将实现 LoRA(低秩适应) 并提供指定的秩.LoRA 将层的 kernel 设置为不可训练,并用通过两个较低秩的可训练矩阵相乘得到的增量替换原始 kernel.这对于减少大型密集层微调的计算成本很有用. 你也可以通过调用 layer.enable_lora(rank) 在现有的 Dense 层上启用 LoRA.

输入形状: N 维张量,形状为:(batch_size, ..., input_dim). 最常见的情况是形状为 (batch_size, input_dim) 的 2D 输入.

输出形状: N 维张量,形状为:(batch_size, ..., units). 例如,对于形状为 (batch_size, input_dim) 的 2D 输入, 输出将具有形状 (batch_size, units).