BERT 到 XLNET 训练模型
BERT to XLNET train model
我正在尝试在 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
class 库的源代码。在那里,我们可以看到它被定义为
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(...)
得到相同的结果,虽然我不能保证所有的输入参数都一样。
我正在尝试在 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
class 库的源代码。在那里,我们可以看到它被定义为
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(...)
得到相同的结果,虽然我不能保证所有的输入参数都一样。