Nlp 如何理解BertModel中收益的隐藏状态?(huggingface transformers)

Nlp 如何理解BertModel中收益的隐藏状态?(huggingface transformers),nlp,pytorch,huggingface-transformers,bert-language-model,electrate,Nlp,Pytorch,Huggingface Transformers,Bert Language Model,Electrate,返回上一个隐藏状态(torch.FloatTensor)形状(批次大小, 序列(长度、隐藏(大小)):在 模型最后一层的输出 pooler_输出(torch.FloatTensor:形状(批次大小、隐藏大小)): 序列的第一个标记的最后一层隐藏状态 (分类标记)由线性层和Tanh进一步处理 激活功能。线性层权重是从 下一句预测(分类)目标 预培训 这种输出通常不是对文档语义内容的良好总结 对于输入,您通常更擅长对序列进行平均或合并 整个输入序列的隐藏状态 隐藏状态(元组(torch.FloatT

返回上一个隐藏状态(torch.FloatTensor)形状(批次大小, 序列(长度、隐藏(大小)):在 模型最后一层的输出

pooler_输出(torch.FloatTensor:形状(批次大小、隐藏大小)): 序列的第一个标记的最后一层隐藏状态 (分类标记)由线性层和Tanh进一步处理 激活功能。线性层权重是从 下一句预测(分类)目标 预培训

这种输出通常不是对文档语义内容的良好总结 对于输入,您通常更擅长对序列进行平均或合并 整个输入序列的隐藏状态

隐藏状态(元组(torch.FloatTensor),可选,在 config.output\u hidden\u states=True):torch.FloatTensor的元组(一个用于 嵌入输出+每层输出一个) 形状(批次大小、序列长度、隐藏大小)

每个层的输出处的模型隐藏状态加上 初始嵌入输出

注意事项(元组(torch.FloatTensor),可选,在 config.output_=True):torch.FloatTensor的元组(一个用于 每层)的形状(批次大小、头数、序列长度、, 序列长度)

attention softmax之后的attention权重,用于计算 自我注意脑中的加权平均值

这是我的。虽然文档中的描述很清楚,但我仍然不理解退货的隐藏状态。有一个元组,一个用于嵌入的输出,另一个用于每个层的输出。
请告诉我如何区分它们,或者它们是什么意思?非常感谢!![wink~

我在这个元组的长度中找到了答案。长度是(1+num\u层)。最后一层的输出与嵌入输出不同,因为层输出加上初始嵌入。:D

您可能会发现这本Jupyter笔记本教程很有用:我有同样的问题-文档中不清楚嵌入是元组中的第一项还是最后一项。此线程确认了您的答案: