加载预训练模型时产生报错如下
OSError: Can't load tokenizer for 'bert-base-uncased'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'bert-base-uncased' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
这是因为无法访问外网。该怎么解决呢?
由于题主用的是远程服务器,以下只贴用远程服务器的解决方法,参考链接:https://blog.youkuaiyun.com/weixin_57972634/article/details/143758599
第一步:下载模型文件
此处用的是参考文章中给出的链接:魔塔社区bert模型库,下载以下三个文件:
- config.json
- vocab.txt
- pytorch_model.bin
如图:
第二步:传输到远程服务器
用你熟悉的方法将下载好的三个文件传输到远程服务器中,我比较喜欢用WinSCP,拖拽即可上传很方便
要注意:三个文件都要放在自己新建的文件夹bert_localpath中,新文件夹应该与自己的代码文件在同一目录下。像这里我在get_twibot22.py这个代码文件中要用到模型,所以就把bert_localpath和代码文件放入同一目录下,如下图
第三步:加载
这时就可以敲代码啦
from transformers import BertModel, BertTokenizer
tokenizer = BertTokenizer.from_pretrained("./bert_localpath/")#载入词表
model = BertModel.from_pretrained("./bert_localpath")#载入模型
要注意,加载词表时,需要在bert_localpath后加个‘/’,用于读取文件夹下的vocab.txt,而加载模型时在末尾不要加‘/’
另外在vscode中可能会报相对路径错误,这时就要换成绝对路径