用glove训练了一版词向量,想将其作为初始值赋到 Keras Embedding 中,但尝试了各种方法,一直报错:
self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim)
ValueError: You called set_weights(weights)
on layer "embedding_1" with a weight list of length 1, but the layer was expecting 0 weights. Provided weights: [array([[-0.01543641, 0.00745765, 0.0926055 ,……
解决方法:
先对模型里的embedding进行 build(input_shape=(None,)),再利用set_weights 函数进行赋值
注意赋值时,embedding_value 要放在list中
encoder.embedding.build(input_shape=(None,))
encoder.embedding.set_weights([input_emb])