如何解决BERT 到 XLNET 训练模型
我正在尝试在 XLNet 中做这样的事情,但我在文档中找不到这部分,任何帮助都会很有价值,谢谢!
# we access the transformer model within our bert object using the bert attribute
# (eg bert.bert instead of bert)
embeddings = bert.bert(input_ids,attention_mask=mask)[1] # access pooled activations with [1]
(我试图用 xlnet 代替 bert.bert)
解决方法
为了解决这个问题,让我们先看看 bert.bert
属性背后到底隐藏着什么。为此,我们可以检查 TFBertModel
类的库的源代码。在那里,我们可以看到它被定义为
self.bert = TFBertMainLayer(config,name="bert")
其中 TFBertMainLayer
正是顾名思义 - 主要的 BERT 转换器组件。确切地说,它的定义如下:
# ...
self.embeddings = TFBertEmbeddings(config,name="embeddings")
self.encoder = TFBertEncoder(config,name="encoder")
self.pooler = TFBertPooler(config,name="pooler") if add_pooling_layer else None
# ...
如果我们检查source code for TFXLNetModel
,我们可以看到只有一个属性,定义为
self.transformer = TFXLNetMainLayer(config,name="transformer")
由于它的名称非常相似,您只需调用 xlnet.transformer(...)
就应该得到相同的结果,尽管我不能保证所有输入参数的工作方式都相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。