Embedding layery
参数如下:
tf.keras.layers.Embedding(
input_dim,
output_dim,
embeddings_initializer="uniform",
embeddings_regularizer=None,
activity_regularizer=None,
embeddings_constraint=None,
mask_zero=False,
input_length=None,
**kwargs
)
输入:二维张量:(batch_size, input_length)
。
输出: 3D 张量:(batch_size, input_length, output_dim)
。
参数详解:
- input_dim:整数(>= 0),词汇表中最大值+1
- output_dim:的整数(> 0),嵌入向量的维度
- embeddings_initializer: 嵌入矩阵的初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。
- embeddings_regularizer: 嵌入矩阵的正则项,为Regularizer对
- embeddings_constraint: 嵌入矩阵的约束项,为Constraints对象
- mask_zero:布尔值,确定是否将输入中的‘0’看作是应该被忽略的‘填充’(padding)值,该参数在使用递归层处理变长输入时有用。设置为True的话,模型中后续的层必须都支持masking,否则会抛出异常。如果该值为True,则下标0在字典中不可用,input_dim应设置为|vocabulary| + 1
- input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。
input_dim为什么要词汇表中最大值+1:
创建层时,它将随机初始化嵌入矩阵(形状为(input_dim,output_dim)),然后将词汇表中的数字当作索引,返回相应的行。否则会越界报错。
想进一步了解Embedding请看:机器学习实战(第二版)读书笔记(5)—Embedding
文章出处登录后可见!
已经登录?立即刷新