(2)Embedding(): 将正整数(索引值)转换为固定尺寸的稠密向量。 例如: [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]。 该层只能用作模型中的第一层。
(3)Flatten(): 将输入展平。不影响批量大小。
参数
-
data_format:一个字符串,其值为 channels_last(默认值)或者 channels_first。它表明输入的维度的顺序。此参数的目的是当模型从一种数据格式切换到另一种数据格式时保留权重顺序。channels_last 对应着尺寸为 (batch, ..., channels) 的输入,而 channels_first 对应着尺寸为 (batch, channels, ...) 的输入。默认为 image_data_format 的值,你可以在 Keras 的配置文件 ~/.keras/keras.json 中找到它。如果你从未设置过它,那么它将是 channels_last
(4)Dense(): 就是常用的全连接层。
Dense 实现以下操作: output = activation(dot(input, kernel) + bias) 其中 activation 是按逐个元素计算的激活函数,kernel是由网络层创建的权值矩阵,以及 bias 是其创建的偏置向量 (只在 use_bias 为 True 时才有用)。
参数
-
units: 正整数,输出空间维度。
-
activation: 激活函数 (详见
activations)。 若不指定,则不使用激活函数 (即,「线性」激活: a(x) = x)。
-
use_bias: 布尔值,该层是否使用偏置向量。
-
-
-
kernel_regularizer: 运用到 kernel 权值矩阵的正则化函数 (详见
regularizer)。
-
-
activity_regularizer: 运用到层的输出的正则化函数 (它的 "activation")。 (详见 regularizer)。
-
kernel_constraint: 运用到 kernel 权值矩阵的约束函数 (详见
constraints)。
-
bias_constraint: 运用到偏置向量的约束函数 (详见 constraints)。
输入尺寸: nD 张量,尺寸: (batch_size, ..., input_dim)。 最常见的情况是一个尺寸为 (batch_size, input_dim) 的 2D 输入。
输出尺寸: nD 张量,尺寸: (batch_size, ..., units)。 例如,对于尺寸为 (batch_size, input_dim) 的 2D 输入, 输出的尺寸为 (batch_size, units)。
(5)compile():用于配置训练模型
compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
参数:
-
-
loss: 字符串(目标函数名)或目标函数。 详见
losses。 如果模型具有多个输出,则可以通过传递损失函数的字典或列表,在每个输出上使用不同的损失。 模型将最小化的损失值将是所有单个损失的总和。
-
metrics: 在训练和测试期间的模型评估标准。 通常你会使用 metrics = [‘accuracy‘]。 要为多输出模型的不同输出指定不同的评估标准, 还可以传递一个字典,如 metrics = {‘output_a‘:‘accuracy‘}。
-
loss_weights: 可选的指定标量系数(Python 浮点数)的列表或字典, 用以衡量损失函数对不同的模型输出的贡献。 模型将最小化的误差值是由 loss_weights 系数加权的加权总和误差。 如果是列表,那么它应该是与模型输出相对应的 1:1 映射。 如果是张量,那么应该把输出的名称(字符串)映到标量系数。
-
sample_weight_mode: 如果你需要执行按时间步采样权重(2D 权重),请将其设置为 temporal。 默认为 None,为采样权重(1D)。 如果模型有多个输出,则可以通过传递 mode 的字典或列表,以在每个输出上使用不同的 sample_weight_mode。
-
weighted_metrics: 在训练和测试期间,由 sample_weight 或 class_weight 评估和加权的度量标准列表。
-
target_tensors: 默认情况下,Keras 将为模型的目标创建一个占位符,在训练过程中将使用目标数据。 相反,如果你想使用自己的目标张量(反过来说,Keras 在训练期间不会载入这些目标张量的外部 Numpy 数据), 您可以通过 target_tensors 参数指定它们。 它可以是单个张量(单输出模型),张量列表,或一个映射输出名称到目标张量的字典。
-
**kwargs: 当使用 Theano/CNTK 后端时,这些参数被传入 K.function。 当使用 TensorFlow 后端时,这些参数被传递到 tf.Session.run。
【Reference】
1、Docs »Layers »核心网络层: https://keras.io/zh/layers/core/
2、Docs »模型 »函数式 API:https://keras.io/zh/models/model/#compile