我试图在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](而不是bert.bert,我试图用xlnet来实现它)
发布于 2021-05-17 21:16:08
为了解决这个问题,让我们首先看看bert.bert属性背后到底隐藏了什么。为此,我们可以检查TFBertModel类的库源代码。在那里,我们可以看到它被定义为
self.bert = TFBertMainLayer(config, name="bert")其中,TFBertMainLayer是确切的名称-主要的伯特变压器组件。准确地说,它的定义如下:
# ...
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(...)就可以得到相同的结果,尽管我不能保证所有的输入参数都是相同的。
https://stackoverflow.com/questions/67564014
复制相似问题