【问题标题】:Attribute Error: 'Embedding' object has no attribute 'embeddings' - TensorFlow & KerasAttributeerror:“嵌入”对象没有“嵌入”属性 - TensorFlow 和 Keras
【发布时间】:2020-12-31 19:04:55
【问题描述】:

好的,所以我有一个完全运行的 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'

这条线应该返回一个张量,如果我调用任何其他属性到目前为止它可以工作,所以我不确定它是找不到张量还是问题是别的。有人可以帮我弄清楚如何解决这个属性错误吗?

【问题讨论】:

    标签: python tensorflow keras keras-layer


    【解决方案1】:

    尝试使用.get_weights()

    model_build.stimuli.get_weights()
    

    【讨论】:

    • 好的,所以当我执行该行时,我得到一个空列表。它只是显示为“[]”。关于如何让它不为空,您还有其他建议吗?
    【解决方案2】:

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

    对于从 tf.keras.Model 继承的用户定义类,必须将 Layer 实例分配给对象属性,通常在构造函数中。

    那么那一行

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

    成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多