Python AttributeError:Layer tf_bert_模型没有入站节点
我有一个深度学习模型,它使用Huggingface库中的BERT层(Python AttributeError:Layer tf_bert_模型没有入站节点,python,tensorflow,keras,huggingface-transformers,Python,Tensorflow,Keras,Huggingface Transformers,我有一个深度学习模型,它使用Huggingface库中的BERT层(TF=2.0,Transformers=2.8.0) 该模型包括:BERT嵌入->注意->Softmax。此外,我还使用tf.keras.callbacks.ModelCheckpoint在培训期间保存最佳模型 我试着将模型切片以获得注意权重 我的问题是,如果在加载保存的模型后,使用output1=model.layers[3]。output,尝试访问任何层的输出,则会出现以下错误: AttributeError:Layer t
TF=2.0
,Transformers=2.8.0
)
该模型包括:BERT嵌入->注意->Softmax。此外,我还使用tf.keras.callbacks.ModelCheckpoint
在培训期间保存最佳模型
我试着将模型切片以获得注意权重
我的问题是,如果在加载保存的模型后,使用output1=model.layers[3]。output
,尝试访问任何层的输出,则会出现以下错误:
AttributeError:Layer tf_bert_模型没有入站节点
但是,如果我在原始模型上执行相同的操作而不保存它(在完成model.fit()之后立即),我就没有问题了
以下是加载已保存模型的方式:
model = tf.keras.models.load_model(model_dir)
这种方法有问题吗?假设它可以用于预测。回答这个问题是为了社区的利益,因为用户已经找到了解决方案 通过以下步骤解决了该问题
在这里回答是为了社区的利益,因为用户已经找到了解决方案 通过以下步骤解决了该问题
你的问题解决了吗?否则,请您共享完整的代码或Colab文件以复制问题。谢谢@TFer2,是的,我通过1)加载保存的模型,2)创建另一个具有相同结构的新模型,3)将权重从保存的模型复制到新创建的模型,4)然后访问所需的层而解决了问题。您的问题解决了吗?否则,请您共享完整的代码或Colab文件以复制问题。谢谢@TFer2,是的,我通过1)加载保存的模型,2)创建另一个具有相同结构的新模型,3)将权重从保存的模型复制到新创建的模型,4)然后毫无问题地访问所需的层来解决此问题。