Python:OSError可以';t为bert加载配置
我正在尝试为一项任务训练一个Python:OSError可以';t为bert加载配置,python,nlp,pytorch,bert-language-model,huggingface-transformers,Python,Nlp,Pytorch,Bert Language Model,Huggingface Transformers,我正在尝试为一项任务训练一个bert-base多语言uncased模型。我的数据集中有所有必需的文件,包括config.jsonbert文件,但是当我运行模型时,它会给出一个错误 配置 模型 错误 --------------------------------------------------------------------------- OSError回溯(最近一次调用上次) /get\u config\u dict中的opt/conda/lib/python3.6/site-pack
bert-base多语言uncased
模型。我的数据集中有所有必需的文件,包括config.json
bert文件,但是当我运行模型时,它会给出一个错误
配置
模型
错误
---------------------------------------------------------------------------
OSError回溯(最近一次调用上次)
/get\u config\u dict中的opt/conda/lib/python3.6/site-packages/transformers/configuration\u utils.py(cls、预训练模型、名称或路径,**kwargs)
241如果已解析的配置文件为无:
-->242 raise环境错误
243 config\u dict=cls.\u dict\u来自\u json\u文件(已解析的\u config\u文件)
操作错误:
在处理上述异常期间,发生了另一个异常:
OSError回溯(最近一次调用上次)
在里面
79
80如果名称=“\uuuuuu main\uuuuuuuuuuu”:
--->81运行()
在逃
38
39设备=火炬装置(配置装置)
--->40型号=BERTBaseUncased()
41型号至(设备)
42
in_uuu初始(自)
2定义初始化(自):
3超级(BERTBaseUncased,自)
---->4 self.bert=transformers.BertModel.from_pretrained(config.bert_路径)
5自伯特_下降=nn.下降(0.3)
6 self.out=nn.Linear(768*2,1)#*2,因为我们有两个池层
/opt/conda/lib/python3.6/site-packages/transformers/modeling_utils.py in from_pretrained(cls、pretrained_model_name_或_path、*model_args、**kwargs)
601代理=代理,
602仅本地文件=仅本地文件,
-->603**夸尔格,
604 )
605其他:
/opt/conda/lib/python3.6/site-packages/transformers/configuration_utils.py从预先训练(cls、预先训练的模型、名称或路径,**kwargs)
198
199 """
-->200配置目录,kwargs=cls.get配置目录(预先训练的模型名称或路径,**kwargs)
201从目录返回目录(配置目录,**kwargs)
202
/get\u config\u dict中的opt/conda/lib/python3.6/site-packages/transformers/configuration\u utils.py(cls、预训练模型、名称或路径,**kwargs)
249 f“-或“{pretrained_model_name_或_path}”是指向包含{CONFIG_name}文件的目录的正确路径\n\n”
250 )
-->251 raise环境错误(msg)
252
253 json.JSONDECODEROR除外:
OSError:无法加载“workspace/data/jigsaw multilingual/input/bert base multilingual uncased”的配置。请确保:
-“workspace/data/jigsaw multilingual/input/bert base multilingual uncased”是上列出的正确模型标识符https://huggingface.co/models'
-或者“workspace/data/jigsaw multilingual/input/bert base multilingual uncased”是指向包含config.json文件的目录的正确路径
这些是我的bert
数据集中的文件:->
config.json
->
pytorch\u model.bin
->
vocab.txt
如何解决此问题?尝试使用绝对路径,而不是相对路径。初学者通常的解释是,您不知道如何引用现有文件。可能需要查看
class config:
DEVICE = "cuda:2"
MAX_LEN = 256
TRAIN_BATCH_SIZE = 8
VALID_BATCH_SIZE = 4
EPOCHS = 1
BERT_PATH = "workspace/data/jigsaw-multilingual/input/bert-base-multilingual-uncased"
MODEL_PATH = "workspace/data/jigsaw-multilingual/model.bin"
TOKENIZER = BertTokenizer.from_pretrained('bert-base-multilingual-uncased', do_lower_case=True)
class BERTBaseUncased(nn.Module):
def __init__(self):
super(BERTBaseUncased, self).__init__()
self.bert = transformers.BertModel.from_pretrained(config.BERT_PATH)
self.bert_drop = nn.Dropout(0.3)
self.out = nn.Linear(768 * 2, 1) # *2 since we have 2 pooling layers
def forward(self, ids, mask, token_type_ids):
o1, _ = self.bert(ids, attention_mask=mask, token_type_ids=token_type_ids)
mean_pooling = torch.mean(o1, 1)
max_pooling, _ = torch.max(o1, 1)
cat = torch.cat((mean_pooling, max_pooling), 1)
bo = self.bert_drop(cat)
output = self.out(bo)
return output
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
/opt/conda/lib/python3.6/site-packages/transformers/configuration_utils.py in get_config_dict(cls, pretrained_model_name_or_path, **kwargs)
241 if resolved_config_file is None:
--> 242 raise EnvironmentError
243 config_dict = cls._dict_from_json_file(resolved_config_file)
OSError:
During handling of the above exception, another exception occurred:
OSError Traceback (most recent call last)
<ipython-input-64-9f2999c88020> in <module>
79
80 if __name__ == "__main__":
---> 81 run()
<ipython-input-64-9f2999c88020> in run()
38
39 device = torch.device(config.DEVICE)
---> 40 model = BERTBaseUncased()
41 model.to(device)
42
<ipython-input-60-8e1508eac60a> in __init__(self)
2 def __init__(self):
3 super(BERTBaseUncased, self).__init__()
----> 4 self.bert = transformers.BertModel.from_pretrained(config.BERT_PATH)
5 self.bert_drop = nn.Dropout(0.3)
6 self.out = nn.Linear(768 * 2, 1) # *2 since we have 2 pooling layers
/opt/conda/lib/python3.6/site-packages/transformers/modeling_utils.py in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
601 proxies=proxies,
602 local_files_only=local_files_only,
--> 603 **kwargs,
604 )
605 else:
/opt/conda/lib/python3.6/site-packages/transformers/configuration_utils.py in from_pretrained(cls, pretrained_model_name_or_path, **kwargs)
198
199 """
--> 200 config_dict, kwargs = cls.get_config_dict(pretrained_model_name_or_path, **kwargs)
201 return cls.from_dict(config_dict, **kwargs)
202
/opt/conda/lib/python3.6/site-packages/transformers/configuration_utils.py in get_config_dict(cls, pretrained_model_name_or_path, **kwargs)
249 f"- or '{pretrained_model_name_or_path}' is the correct path to a directory containing a {CONFIG_NAME} file\n\n"
250 )
--> 251 raise EnvironmentError(msg)
252
253 except json.JSONDecodeError:
OSError: Can't load config for 'workspace/data/jigsaw-multilingual/input/bert-base-multilingual-uncased'. Make sure that:
- 'workspace/data/jigsaw-multilingual/input/bert-base-multilingual-uncased' is a correct model identifier listed on 'https://huggingface.co/models'
- or 'workspace/data/jigsaw-multilingual/input/bert-base-multilingual-uncased' is the correct path to a directory containing a config.json file