https://blog.csdn.net/chuchus/article/details/78386059
词汇是语料库的基本元素, 所以, 使用embedding layer来学习词嵌入, 将一个词映射成为固定维度的稠密向量. 有了这一步, 才能构造矩阵, 实现神经网络的前向传播.
如何使用?
- 从头训练
就像word2vec一样, 这一层是可学习的, 用随机数initialize , 通过BP去调整. - pre-trained + fine tuning
用其他网络(如 word2vec) 训练好的现成的词向量, 作为初始化参数, 然后继续学习. - pre-trained + static
用其他网络(如 word2vec) 训练好的现成的词向量, 作为初始化参数, 并且这些参数保持固定, 不参与网络的学习.
keras 的 Embedding
Embedding(Layer)
类. 将索引映射为固定维度的稠密的向量.
eg. [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
This layer can only be used as the first layer in a model.
__init__(self, input_dim, output_dim,input_length,...)
构造函数, 分别为三个参数分别代表vocab_size,vector_dimension,fixed_word_number.
还有继承自父类的weights,trainable参数.
如一个语料库, 词汇量为20万, word representa