似乎不可能将预训练的嵌入加载到层。看这里
我做的解决方法如下:
model = create_model()
E = [p for p in model.parameters if p.name == 'E'][0]
emb = np.asarray(np.loadtxt('embeddings.txt', delimiter=' '), dtype='float32')
model = model.clone(CloneMethod.clone, { E: constant(emb) })
embeddings.txt 具有以下格式,其中行数是我使用的词汇表中的单词数,列数是我为嵌入选择的维度:-0.05952413007617 0.12596195936203 -0.189506858587265 ... -0.0871662572026253 -0.095480620115 -0.126074999570847 ... ...
以上似乎是正确的解决方法吗?我开始了一个训练课程,与训练嵌入层时相比,参数数量减少了,这可能是一个很好的指示。