pytorch finBert模型NLP情绪- OSError -在本地文件夹中无法识别config.json- huggingface

a5g8bdjr  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(1635)

当运行从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

j2cgzkjk

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文件夹所在的同一个文件夹中运行代码,那么应该可以找到本地模型。

相关问题