keras-cn
keras-cn copied to clipboard
将词向量随机初始化,实验过程中保持词向量不变,只学习模型参数。这句话是说,embedding层不可训练吗?
-
- 如题,在一篇文章里看到,“将词级别的词向量随机初始化,实验过程中保持词向量不变,只学习模型参数”,意思是embedding层不可训练吗?我查了文档看到“使用预训练词向量”文章后,感觉应该是设置embedding层的 trainable=False,请问这么做对吗?
-
- 还有一点,看文档介绍,embedding层的参数并没有trainable啊,那怎么“使用预训练词向量”这篇文章还会这么设置呢?
-
- 另外embedding层是不是将词语下标进行随机初始化,然后再迭代过程中不断的进行微调,不知这样理解对不对?
@summerHaha
- Embedding层当然是可以训练的,设置trainable=False会使得Embedding层不更新参数,如果这就是你想要的东西的话,当然是可以的。
- 一个层能不能训练不能看trainable,要看它的self.build函数中是否对self.trainable_weights添加了参数。trainable是所有层对象都有的属性,定义在基类Layer中,Embedding继承了Layer,自然也有trainable这个属性。
- 我不是NLP的专家,这个问题不太清楚,但基本上应该没错。
- 是的,使用预训练词向量时需要设置weight=[你的预训练权重],trainable=false 2.有的,请更新到最新版本看embedding源码 3.训练embedding时是这样,初始化一个word_n*vector_dim的矩阵,初始化的方式有多种