ConnectionResetError: [Errno 104] Connection reset by peer
- 0. 错误介绍
- 1. 解决思路
- 1.1 添加代码 force_download=True
- 1.2 删除缓存
- 1.3 科学上网
- 1.4 线下下载
- 2. 解决方法
- 2.1 清除缓存
- 2.2 线下下载模型(强烈建议)
- 3. 总结
0. 错误介绍
当使用transformers
库的BertTokenizer
或BertModel
的from_pretrained()
函数时出错。(注:linux跟window均可能存在该问题)
代码如下:
from transformers import BertModel, BertTokenizer
model = BertModel.from_pretrained('bert-base-uncased')
报错:
1. 解决思路
对于该问题网上有很多中解释,接下来分别进行实验看是否有效。
注意:当前所用 transformers==4.15.0
1.1 添加代码 force_download=True
在from_pretrained()
函数中添加force_download=True
,从而可以下载内容。
from transformers import BertModel, BertTokenizer
model = BertModel.from_pretrained('bert-base-uncased',force_download=True)
结果:依旧报错
1.2 删除缓存
删除缓存即删除cookie,对于电脑不是很熟悉的可能不知道如何操作,即操作起来较为麻烦。大家可自行搜索。
其中,对于windows电脑来说,只要重启就行。
结果:windows下成功可以下载模型,但是linux下不起作用(可能跟我删除缓存的方式不对有关)。
1.3 科学上网
有的文章中说是网络问题导致,需要科学上网,有的说不能科学上网。这是一个矛盾
!!
结果:科学上网并不能解决问题。
1.4 线下下载
通过线下下载的方式,然后模型无需另外下载。
结果:成功下载,加载模型。
2. 解决方法
上述列举了一系列网上提到的解决方法,这里根据自己的亲身经验给大家进行总结。其中,主要解决方法分为清除缓存
和线下下载
两种。(注意:下载的时候不要科学上网
)
2.1 清除缓存
一般来说,对于这种预加载模型都是可以直接下载
的。如果多次尝试下载不行,可能存在缓存过多的情况。此时,建议清除缓存再尝试
。
对于Windows
来说,就是直接重启
就行。(当然,有更好的方法也可以留言告知,后续会加入到文章中!!!)
对于Linux
来说,我这边测试了删除缓存,但是仍然没有成功。
所以不建议
使用这种方法。
2.2 线下下载模型(强烈建议)
具体思路为:通过直接下载模型,然后加载模型时加载本地文件夹内容即可。
具体操作步骤如下:
-
登录 huggingface官网
网址如下:https://huggingface.co/,可以看到如下界面。
-
搜索需要下载的模型
这里需要下载的模型为:bert-base-uncased,得到搜索结果如下
-
下载文件
可以直接下载文件,也可以通过git
的方法下载。
直接下载文件需要点击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')
3. 总结
总的而言,预训练模型下载下来还是简单的。但是网上的相关教程不是很清晰,所以根据自己的经验来总结这篇文章,希望大家会喜欢。如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。
到此,有关TPS
的内容就基本讲完了。如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。