当运行从HuggingFace发布的finBert模型时,它会输出错误,即config.json文件不在本地文件夹中。
我使用的是Python自带的标准Python IDLE和Python Shell,我没有使用Google Colab或Jupyter笔记本。
我按照说明从hugging face和github仓库下载了文件。只有两个文件被指示从huggingface或github仓库下载“pytorch_model. bin”文件和“config.json”文件。它被指示创建一个文件夹,并把这两个文件放在该文件夹中。我在桌面上创建了一个名为“testbert”的文件夹。并将pytorch_model. bin和config.json两个文件都放置在该文件夹中。
下面是该计划的代码,
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # bert-base-uncased
model = BertForSequenceClassification.from_pretrained('testbert/pytorch_model.bin', config = 'testbert/config.json', num_labels=3)
inputs = tokenizer('We had a great year', return_tensors='pt')
outputs = model(**inputs)
下面是错误,
OSError: testbert/config.json is not a local folder and is not a valid model identifier listed on 'https://huggingface.co/models'
If this is a private repository, make sure to pass a token having permission to this repo with `use_auth_token` or log in with `huggingface-cli login` and pass `use_auth_token=True`
下面是json文件“config.json”的代码
{
"_name_or_path": "C://Users//Major A//AppData//Local//Programs//Python//Python37-32//finance_bert",
"architectures": [
"BertForSequenceClassification"
],
"attention_probs_dropout_prob": 0.1,
"gradient_checkpointing": false,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"id2label": {
"0": "positive",
"1": "negative",
"2": "neutral"
},
"initializer_range": 0.02,
"intermediate_size": 3072,
"label2id": {
"positive": 0,
"negative": 1,
"neutral": 2
},
"layer_norm_eps": 1e-12,
"max_position_embeddings": 512,
"model_type": "bert",
"num_attention_heads": 12,
"num_hidden_layers": 12,
"pad_token_id": 0,
"position_embedding_type": "absolute",
"type_vocab_size": 2,
"vocab_size": 30522
}
我不知道是不是这样,但是我试着用我的“testbert”文件夹的完整路径来替换上面的json键“name_or_path”的值。不管我是用“testbert”文件夹的完整路径还是保留上面的json代码,我仍然得到同样的错误“testbert/config.json文件不是本地驱动器”。显然我把config.json文件放在“testbert”文件夹中,我不知道为什么我会得到这个错误。我已经很努力地试图解决这个问题,但我得到了同样的错误。我真的很感激解决这个问题。这只是复制相同的模型从huggingface或github,我不知道为什么要这样做!!我真的很感激你的帮助。
拥抱脸存储库-https://huggingface.co/ProsusAI/finbert/tree/main
Github存储库-https://github.com/ProsusAI/finBERT
1条答案
按热度按时间j2cgzkjk1#
如果您的模型与代码位于同一文件夹中,则它应通过更改以下内容来工作:从
model = BertForSequenceClassification.from_pretrained('testbert/pytorch_model.bin', config = 'testbert/config.json', num_labels=3)
更改为model = BertForSequenceClassification.from_pretrained('testbert/pytorch_model.bin', config = './testbert', num_labels=3)
。如果您现在在testbert文件夹所在的同一个文件夹中运行代码,那么应该可以找到本地模型。