【问题标题】:ValueError: Layer weight shape (30522, 768) not compatible with provided weight shape ()ValueError: 层权重形状 (30522, 768) 与提供的权重形状 () 不兼容
【发布时间】:2022-01-12 01:50:43
【问题描述】:

我使用 BERT 进行了词嵌入,需要将其作为 Keras 模型中的嵌入层提供,我得到的错误是

ValueError: Layer weight shape (30522, 768) not compatible with provided weight shape ()

模型是

embedding = Embedding(30522, 768, mask_zero=True)(sentence)
model.layers[1].set_weights([embedding_matrix])

【问题讨论】:

    标签: keras huggingface-transformers bert-language-model transformer language-model


    【解决方案1】:

    您正在向set_weights 传递一个列表列表:

    embedding_matrix = [np.random.uniform(0,1, (30522, 768))]
    
    sentence = Input((20,))
    embedding = Embedding(30522, 768, mask_zero=True)(sentence)
    model = Model(sentence, embedding)
    
    model.layers[1].set_weights([embedding_matrix])
    

    虽然你应该简单地传递一个数组列表:

    embedding_matrix = np.random.uniform(0,1, (30522, 768))
    
    sentence = Input((20,))
    embedding = Embedding(30522, 768, mask_zero=True)(sentence)
    model = Model(sentence, embedding)
    
    model.layers[1].set_weights([embedding_matrix])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 2021-05-29
      • 2016-10-23
      相关资源
      最近更新 更多