gpt4 book ai didi

python-3.x - bert层中的池化输出和序列输出有什么区别?

转载 作者:行者123 更新时间:2023-12-02 16:31:50 31 4
gpt4 key购买 nike

各位!我正在阅读有关 Bert 的文章,并想用它的词嵌入进行文本分类。我遇到了这行代码:

pooled_output, sequence_output = self.bert_layer([input_word_ids, input_mask, segment_ids])   

然后:

clf_output = sequence_output[:, 0, :]
out = Dense(1, activation='sigmoid')(clf_output)

但是我无法理解池化输出的使用。 序列输出不包含包括['CLS']的词嵌入在内的所有信息吗?如果是这样,为什么我们要合并输出?

提前致谢!

最佳答案

序列输出 是 BERT 模型最后一层输出的隐藏状态(嵌入)序列。它包括 [CLS] token 的嵌入。因此,对于句子“You are on Stackoverflow”,它给出了 5 个嵌入:四个词中的每一个的一个嵌入(假设单词“Stackoverflow”被标记为单个标记)以及 [CLS] 标记的嵌入。Pooled output 是 [CLS] 标记的嵌入(来自序列输出),由线性层和 Tanh 激活函数进一步处理。线性层权重是在预训练期间从下一个句子预测(分类)目标训练的。更多细节请引用BERT原论文。

关于python-3.x - bert层中的池化输出和序列输出有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63377198/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com