小编Ash*_*vin的帖子

Bert 预训练模型每次给出随机输出

我试图在 Huggingface bert 变压器之后添加一个额外的层,所以我BertForSequenceClassification在我的nn.Module网络中使用。但是,与直接加载模型相比,我看到模型给了我随机输出。

模型 1:

from transformers import BertForSequenceClassification

model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels = 5) # as we have 5 classes

import torch
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

input_ids = torch.tensor(tokenizer.encode(texts[0], add_special_tokens=True, max_length = 512)).unsqueeze(0)  # Batch size 1

print(model(input_ids))

Run Code Online (Sandbox Code Playgroud)

出去:

(tensor([[ 0.3610, -0.0193, -0.1881, -0.1375, -0.3208]],
        grad_fn=<AddmmBackward>),)
Run Code Online (Sandbox Code Playgroud)

模型 2:

import torch
from torch import nn

class BertClassifier(nn.Module):
    def __init__(self):
        super(BertClassifier, self).__init__()
        self.bert = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels = 5)
        # as we have 5 …
Run Code Online (Sandbox Code Playgroud)

python-3.x pytorch bert-language-model huggingface-transformers

3
推荐指数
1
解决办法
783
查看次数