Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Bert嵌入元素#308_Python_Pytorch_Word Embedding_Bert Language Model - Fatal编程技术网

Python Bert嵌入元素#308

Python Bert嵌入元素#308,python,pytorch,word-embedding,bert-language-model,Python,Pytorch,Word Embedding,Bert Language Model,我一直在和伯特练习。具体地说,我使用的是带有PyTorch库的基于BERT的无基础模型 导入火炬 从pytorch_pretrained_bert导入BertTokenizer、BertModel、BertForMaskedLM 标记器=BertTokenizer.from_pretrained('bert-base-uncased')) model=BertModel.from_pretrained('bert-base-uncased')) 我注意到,对于我看过的几乎每个单词,在768长向

我一直在和伯特练习。具体地说,我使用的是带有PyTorch库的基于BERT的无基础模型

导入火炬
从pytorch_pretrained_bert导入BertTokenizer、BertModel、BertForMaskedLM
标记器=BertTokenizer.from_pretrained('bert-base-uncased'))
model=BertModel.from_pretrained('bert-base-uncased'))
我注意到,对于我看过的几乎每个单词,在768长向量中的元素#308都是一个负异常值,其值低于-2,可能有一半的时间低于-4

真奇怪。我试着在谷歌上搜索关于“308”的信息,但什么也找不到

我想知道对这种“现象”有什么解释

下面是我提取嵌入的例程:

def bert_嵌入(文本,bert_模型,bert_标记器,层编号=0):
已标记的_text=“[CLS]”+text+“[SEP]”
#默认值为最后一层:0-1=-1
层号-=1
tokenized_text=bert_tokenizer.tokenize(标记的_text)
索引的\u标记=标记器。将\u标记\u转换为\u ID(标记化的\u文本)
段\u id=[1]*len(标记化的\u文本)
令牌\u张量=torch.tensor([索引的\u令牌])
段\张量=火炬.张量([段\ ID])
使用手电筒。无梯度()
编码的\u层,\u=bert\u模型(标记\u张量,段\u张量)
返回编码的_层[层编号][0][:]

在NLP的神经网络中,几乎不可能将意义分配给各个维度。每次,你都会重新训练伯特,重量会完全不同。我猜这只是一个随机的工件。但是这个特定的元素几乎总是一个异常值,这不是很奇怪吗?确实是这样。:)但我仍然相信这只是一个奇怪的随机现象。你是否考虑从头开始重新训练伯特模型?(未使用预先培训的模型)?