当使用transformers
库的BertTokenizer
或BertModel
的from_pretrained()
函数时出错。(注:linux跟window均可能存在该问题)
代码如下:
from transformers import BertModel, BertTokenizer
model = BertModel.from_pretrained('bert-base-uncased')
对于该问题网上有很多中解释,接下来分别进行实验看是否有效。
注意:当前所用 transformers==4.15.0
在from_pretrained()
函数中添加force_download=True
,从而可以下载内容。
from transformers import BertModel, BertTokenizer
model = BertModel.from_pretrained('bert-base-uncased',force_download=True)
结果:依旧报错
删除缓存即删除cookie,对于电脑不是很熟悉的可能不知道如何操作,即操作起来较为麻烦。大家可自行搜索。
其中,对于windows电脑来说,只要重启就行。
结果:windows下成功可以下载模型,但是linux下不起作用(可能跟我删除缓存的方式不对有关)。
有的文章中说是网络问题导致,需要科学上网,有的说不能科学上网。这是一个矛盾
!!
结果:科学上网并不能解决问题。
通过offline下载的方式,然后模型无需另外下载。
结果:成功下载,加载模型。
上述列举了一系列网上提到的解决方法,这里根据自己的亲身经验给大家进行总结。其中,主要解决方法分为清除缓存
和线下下载
两种。(注意:下载的时候不要科学上网
)
一般来说,对于这种预加载模型都是可以直接下载
的。如果多次尝试下载不行,可能存在缓存过多的情况。此时,建议清除缓存再尝试
。
对于Windows
来说,就是直接重启
就行。(当然,有更好的方法也可以留言告知,后续会加入到文章中!!!)
对于Linux
来说,我这边测试了删除缓存,但是仍然没有成功。(由于作者知识有限,因此仅猜测这里指的不是浏览器缓存cookie
,而是指代码运行缓存cache
。因为没有浏览器也可以运行该代码,产生缓存文件。)
所以不建议
使用这种方法。
注意:这里说的offline下载模型是相对于代码直接运行的online方式,通过离线的防线先将模型下载下来,适用于所有情况,因此推荐!!!
具体思路为:通过直接下载模型,然后加载模型时加载本地文件夹内容即可。(直接下载包括:linux
的git clone
命令下载以及window浏览器点击下载
的方式,当然windows
下如有git
命令也可通过git clone
下载。)
具体操作步骤如下:
下载文件
可以直接下载文件,也可以通过git
的方法下载。(linux
一般均使用 git clone
下载)
直接下载文件需要点击 Files and versions
按钮,然后下载文件即可。
git
方式下载需要点击Train
左边的三个小点,然后选择Clone repository
,最后使用git
命令,别的两个命令不用管。界面如下:
调用的git
命令如下:
git clone https://huggingface.co/bert-base-uncased
bert-base-uncased
为下载下来的模型存放目录:tokenizer = BertTokenizer.from_pretrained('/bert-base-uncased')
总的而言,预训练模型下载下来还是简单的。但是网上的相关教程不是很清晰,所以根据自己的经验来总结这篇文章,希望大家会喜欢。如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦。