TensorFlow2.0 Keras embedding 无法用预训练向量赋初始值
先对模型里的embedding进行 build(input_shape=(None,)),再利用set_weights 函数进行赋值。注意赋值时,embedding_value 要放在list中。
·
用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])
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)