Keras – 密集层
密集层 是常规的深度连接神经网络层。它是最常见和最经常使用的层。密集层对输入进行以下操作并返回输出。
其中、
- 输入 代表输入数据
-
kernel 代表权重数据
-
dot 代表所有输入和其对应的权重的numpy点积
-
bias 代表机器学习中用于优化模型的偏置值
-
activation 代表激活函数。
让我们考虑以下的输入和权重样本,并尝试找到结果。
- 输入为2 x 2矩阵 [[1, 2], [3, 4] ] 。
-
内核为2 x 2矩阵 [[0.5, 0.75], [0.25, 0.5] ] 。
-
偏置值为 0
-
激活为 线性。 正如我们前面所学,线性激活没有任何作用。
结果 是输出,它将被传递到下一个层。
密集层的输出形状将受到密集层中指定的神经元/单元数量的影响。例如,如果输入形状是 ( 8 ,) ,单元数是16,那么输出形状就是 (16,)。 所有的层都将以批量大小为第一维度,因此,输入形状将以 (None,8) 表示,输出形状为 (None,16)。 目前,批量大小是无,因为它没有被设置。批量大小通常在训练阶段设置。
其中、
- layer_1.input_shape 返回该层的输入形状。
-
layer_1.output_shape 返回该层的输出形状。
密集层 支持的参数如下
- units 代表单元的数量,它影响到输出层。
-
activation 代表激活函数。
-
use_bias 表示该层是否使用偏置矢量。
-
kernel_initializer 表示用于内核的初始化器。
-
bias_initializer 表示用于偏置向量的初始化器。
-
kernel_regularizer 表示应用于kernel权重矩阵的正则函数。
-
bias_regularizer 表示应用于偏置向量的正则函数。
-
activity_regularizer 表示应用于该层输出的正则函数。
-
kernel_constraint 表示应用于kernel权重矩阵的约束函数。
-
bias_constraint 代表应用于偏置向量的约束函数。
正如你所看到的,没有一个参数可以用来指定输入数据的 input_shape 。 input_shape 是一个特殊的参数,只有当它被设计为模型中的第一层时,层才会接受这个参数。
此外,所有的Keras层都有一些共同的方法,它们如下: 1.
get_weights
获取该层中使用的权重的完整列表。
- set_weights – 设置该层的权重。
-
get_config – 获取该层的完整配置,作为一个对象,可以在任何时候重新加载。
from_config
从该层的配置对象中加载该层。
输入形状(input_shape)
获取输入形状,如果该层只有一个节点。
输入
获取输入数据,如果该层只有一个节点。
- get_input_at – 如果该层有多个节点,在指定的索引处获取输入数据。
-
get_input_shape_at – 如果该层有多个节点,在指定的索引处获取输入形状。
-
output_shape – 如果该层只有一个节点,则获取输出形状。
输出
获取输出数据,如果该层只有一个节点。
-
get_output_at – 如果该层有多个节点,在指定的索引处获取输出数据。
-
get_output_shape at -_ 如果该层有多个节点,则在指定的索引处获取输出形状。