首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在spaCy中加载德国BERT模型

无法在spaCy中加载德国BERT模型
EN

Stack Overflow用户
提问于 2020-05-19 19:24:36
回答 2查看 575关注 0票数 0

我的问题是:我正在从事德语文本分类项目。我使用的空间,并决定微调其预先训练的伯特模型,以获得更好的结果。但是,当我试图将它加载到代码时,它会显示错误。

以下是我所做的:

  1. 安装的空间变压器:pip install spacy-transformers
  2. 下载德国伯特模型:python -m spacy download de_trf_bertbasecased_lg。它被成功下载并展示给我看:✔ Download and installation successful You can now load the model via spacy.load('de_trf_bertbasecased_lg')
  3. 编写了以下代码:

import spacy nlp = spacy.load('de_trf_bertbasecased_lg')

产出如下:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
nlp = spacy.load('de_trf_bertbasecased_lg')
  File "C:\Python\Python37\lib\site-packages\spacy\__init__.py", line 30, in load
return util.load_model(name, **overrides)
  File "C:\Python\Python37\lib\site-packages\spacy\util.py", line 164, in load_model
return load_model_from_package(name, **overrides)
  File "C:\Python\Python37\lib\site-packages\spacy\util.py", line 185, in load_model_from_package
return cls.load(**overrides)
  File "C:\Python\Python37\lib\site-packages\de_trf_bertbasecased_lg\__init__.py", line 12, in load
return load_model_from_init_py(__file__, **overrides)
  File "C:\Python\Python37\lib\site-packages\spacy\util.py", line 228, in load_model_from_init_py
return load_model_from_path(data_path, meta, **overrides)
  File "C:\Python\Python37\lib\site-packages\spacy\util.py", line 196, in load_model_from_path
cls = get_lang_class(lang)
  File "C:\Python\Python37\lib\site-packages\spacy\util.py", line 70, in get_lang_class
if lang in registry.languages:
  File "C:\Python\Python37\lib\site-packages\catalogue.py", line 56, in __contains__
has_entry_point = self.entry_points and self.get_entry_point(name)
  File "C:\Python\Python37\lib\site-packages\catalogue.py", line 140, in get_entry_point
return entry_point.load()
  File "C:\Python\Python37\lib\site-packages\importlib_metadata\__init__.py", line 94, in load
module = import_module(match.group('module'))
  File "C:\Python\Python37\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Python\Python37\lib\site-packages\spacy_transformers\__init__.py", line 1, in <module>
from .language import TransformersLanguage
  File "C:\Python\Python37\lib\site-packages\spacy_transformers\language.py", line 5, in <module>
from .util import is_special_token, pkg_meta, ATTRS, PIPES, LANG_FACTORY
  File "C:\Python\Python37\lib\site-packages\spacy_transformers\util.py", line 2, in <module>
import transformers
  File "C:\Python\Python37\lib\site-packages\transformers\__init__.py", line 20, in <module>
from .file_utils import (TRANSFORMERS_CACHE, PYTORCH_TRANSFORMERS_CACHE, PYTORCH_PRETRAINED_BERT_CACHE,
  File "C:\Python\Python37\lib\site-packages\transformers\file_utils.py", line 37, in <module>
import torch
  File "C:\Python\Python37\lib\site-packages\torch\__init__.py", line 81, in <module>
ctypes.CDLL(dll)
  File "C:\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

如果我在PyCharm中运行相同的代码,它还会在上述所有代码之前显示这两行代码:

代码语言:javascript
复制
2020-05-19 18:00:55.132721: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not 
load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
2020-05-19 18:00:55.132990: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart 
dlerror if you do not have a GPU set up on your machine.

如果我做对了,这两行抱怨我没有GPU。然而,根据文档,即使没有GPU,我也应该能够使用BERT。

所以我现在真的被困在寻求你的帮助了。

我还应该提到,我以前使用过de_core_news_sm模型,它运行得很好。

我也尝试过几种解决方案,但都没有奏效。我试过:。我还尝试卸载所有spacy-related库并再次安装它们。也没帮上忙。

我的工作是:

Windows 10家庭 Python: 3.7.2 施用量: 2.2.4 Spacy-变压器: 0.5.1

如有任何帮助或建议,将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-19 19:56:56

这可能是安装torch时遇到的问题。在一个干净的虚拟环境中开始并使用这里的说明安装torch,使用CUDA作为None:https://pytorch.org/get-started/locally/。然后用spacy-transformers安装pip

票数 2
EN

Stack Overflow用户

发布于 2020-05-19 19:37:08

尝试:

代码语言:javascript
复制
python -m spacy download de_trf_bertbasecased_lg
python -m spacy download de_trf_bertbasecased_lg-2.2.0

python -m spacy link de_trf_bertbasecased_lg
python -m spacy link de_trf_bertbasecased_lg-2.2.0

或者:

代码语言:javascript
复制
python -m spacy download de
python -m spacy.de.download all

或直接从以下网址下载:

https://deepset.ai/german-bert

然后装载:

代码语言:javascript
复制
nlp = spacy.load(r'Path_To_File\de_trf_bertbasecased_lg-2.2.0')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61899118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档