【问题标题】:BERT to XLNET train modelBERT 到 XLNET 训练模型
【发布时间】:2021-05-17 04:29:19
【问题描述】:

我正在尝试在 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)

【问题讨论】:

  • 您能说明一下您使用的是哪个库吗?我假设它是huggingface-transformers,但很可能是另一个 :)
  • 嗨!是的,添加 Dense 层是拥抱面部转换器和 Tensorflow,在此先感谢! :)

标签: python tensorflow nlp tf.keras transformer


【解决方案1】:

为了解决这个问题,让我们先看看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(...) 来获得相同的结果,尽管我不能保证所有输入参数的工作方式都相同。

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 2022-01-01
    • 2021-07-25
    • 2020-12-08
    • 2021-10-22
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多