google colab 上的 Keras 嵌入层 set_weights() 错误

Keras embedding layer set_weights() error on google colab

我正在尝试使用以下代码为我在 google colab(tf 版本 2.6.0)上创建的 LSTM 模型的 Keras 嵌入层手动设置新权重:

model4Ax.layers[0].set_weights(emb4A)

emb4A 是我通过组合多个嵌入创建的嵌入,但仍具有与原始相同的维度

但我收到此错误:

ValueError:您在“嵌入”层上调用了 set_weights(weights),权重列表长度为 500,但该层期望权重为 1。提供的权重:[[-0.03877353 -0.02181869 -0.06819688 ... 0.02823...

有人熟悉吗?我需要帮助!

我终于发现了我的错误。即使我的嵌入权重值的形状正确,set_weight() 仍期望权重作为 NumPy 数组列表。我所要做的就是将我的权重包裹在 [] 中,如下所示:

model4Ax.layers[0].set_weights([emb4A])