Attribute Error: 'Embedding' object has no attribute 'embeddings' - TensorFlow & Keras

Attribute Error: 'Embedding' object has no attribute 'embeddings' - TensorFlow & Keras

好的,我有一个完全 运行 的 keras 模型,然后用这条线保存权重:

model.save_weights("rho_beta_true_tf", save_format="tf")

然后在另一个文件中,我只构建模型,然后使用以下行从上面 运行 的模型加载权重:

model_build.load_weights("rho_beta_true_tf")

当我调用某些属性时,除了我尝试 运行 这一行之外,一切都正确显示:

model_build.stimuli.embeddings 

model_build.stimuli.embeddings.numpy()[0]

我收到一条属性错误消息:

AttributeError: 'Embedding' object has no attribute 'embeddings'

这一行应该 return 一个张量,如果我到目前为止调用任何其他属性它都可以工作,所以我不确定它是否只是找不到张量或者问题是否出在其他地方。有人可以帮我弄清楚如何解决这个属性错误吗?

尝试使用 .get_weights():

model_build.stimuli.get_weights()

事实证明,因为我以 tf 格式保存了权重,所以我必须按照张量流文档中的这个步骤操作:

For user-defined classes which inherit from tf.keras.Model, Layer instances must be assigned to object attributes, typically in the constructor.

那么行

build_model.stimuli.embedding(put the directory path to your custom embedding layer here)

成功了!