目录
1、Keras 嵌入层
Keras的嵌入层使用随机权重初始化,并将学习所有数据集中词的嵌入。
它是一个灵活的层,可以以各种方式使用,如:
1.它可以单独使用来学习一个字嵌入,以后可以在另一个模型中使用。
2.它可以用作深度学习模型的一部分,其中嵌入与模型本身一起被学习。
3.它可以用于加载预训练的词嵌入模型,是种迁移学习,将词嵌入模型转换为权重矩阵输入keras的Embedding层
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)
输入尺寸
尺寸为 (样本数, sequence_length(句子长度,句子的词长度需要人为统一))
的 2D 张量。
输出尺寸
尺寸为 (样本数, sequence_length, output_dim(
嵌入后的设定向量维度))
的 3D 张量。
如果希望连接密集(dense)层直接到嵌入层,必须首先将y和z压缩到一行,形成一个(x,yz)的2D矩
2、在keras的嵌入层中学习词嵌入
keras embeding设置初始值有两种方式:随机初始化Embedding,使用weights参数指明embedding初始值
这里是随机初始化Embedding,对数据集中的word进行词嵌入学习
2.1、one_hot
将文本编码为大小为 n 的单词索引列表,将文本单词映射为数字。
2.2、pad_sequences
Keras需要输入具有相同的长度。keras只能接受长度相同的序列输入。因此句子具有不同的长度,这时需要使用pad_sequences()。该函数是将序列转化为经过填充以后的一个长度相同的新序列新序列。
keras.preprocessing.sequence.pad_sequences(sequences,
maxlen=None,
dtype='int32',
padding='pre',
truncating='pre',
value=0.)
参数说明