如何通过从tensorflow图中获取正确的占位符来向BERT提供我自己的数据
我正试着为内尔对伯特进行微调。我已经从这里下载了一个检查点() 我已使用以下代码加载会话和图表:如何通过从tensorflow图中获取正确的占位符来向BERT提供我自己的数据,tensorflow,ner,bert-language-model,Tensorflow,Ner,Bert Language Model,我正试着为内尔对伯特进行微调。我已经从这里下载了一个检查点() 我已使用以下代码加载会话和图表: model = "./cased_L-12_H-768_A-12/bert_model" new_saver = tf.train.import_meta_graph(model + ".ckpt.meta") new_saver.restore(sess, model + '.ckpt') graph = tf.get_default_graph() 现在,我试图从这个图中获取输入占位符,以创建
model = "./cased_L-12_H-768_A-12/bert_model"
new_saver = tf.train.import_meta_graph(model + ".ckpt.meta")
new_saver.restore(sess, model + '.ckpt')
graph = tf.get_default_graph()
现在,我试图从这个图中获取输入占位符,以创建我自己的提要并定义我自己的损失函数。我使用以下代码检查图形:
op = sess.graph.get_operations()
[m.values() for m in op]
我发现的唯一占位符如下所示:
[(<tf.Tensor 'Placeholder:0' shape=(1, 128) dtype=int32>,),
(<tf.Tensor 'Placeholder_1:0' shape=(1, 128) dtype=int32>,),
(<tf.Tensor 'Placeholder_2:0' shape=(1, 128) dtype=int32>,),
[(,),
(,),
(,),
我认为这些占位符不正确,原因如下:
对于下游任务,伯特模型的典型使用需要重建图形,并从预训练模型加载权重/偏差值,如
run\u classifier.py
等示例脚本中所做的那样
通过自己定义占位符,并在构建图形时将它们(作为模型构造函数的输入)提供给模型,可以以旧的方式运行模型
请注意,
is\u training
在BertModel中定义为布尔变量,但不是张量,如果您还想在其中输入占位符,则需要对代码进行一些小的更改。对于下游任务,BERT模型的典型使用需要重建图形并从预训练模型加载权重/偏差值,如中所做的那样像这样的示例脚本运行_classifier.py
通过自己定义占位符,并在构建图形时将它们(作为模型构造函数的输入)提供给模型,可以以旧的方式运行模型
请注意,
is\u training
在BertModel中定义为bool变量,但不是张量,如果您还想在其中输入占位符,则需要进行一些小的代码更改。如果您只使用它,这会简单得多。使用hub.Module
加载嵌入,并设置trainable=True
。谢谢。我理解。我我希望我能用老式的方式来做。如果你只使用它,这会简单得多。使用hub.Module
加载嵌入,并设置trainable=True
。谢谢。我理解。我希望我能用老式的方式来做。