在函数注册表“architectures”中找不到函数“spacy-transformers.TransformerModel.v3”

问题描述 投票:0回答:4

我试图创建一个自定义 NER 模型。我使用 spacy 库来创建模型。这行代码是从

base.config
文件创建配置文件。 我的代码是:

!python -m spacy init fill-config /content/drive/MyDrive/NER_RE_New/NER/base_config.cfg /content/drive/MyDrive/NER_RE_New/NER/config.cfg

错误

catalogue.RegistryError: [E893] Could not find function 'spacy-transformers.TransformerModel.v3' in function registry 'architectures'. If you're using a custom function, make sure the code is available. If the function is provided by a third-party package, e.g. spacy-transformers, make sure the package is installed in your environment.

可用名称:

spacy-legacy.CharacterEmbed.v1, 
spacy-legacy.HashEmbedCNN.v1, 
spacy-legacy.MaxoutWindowEncoder.v1, 
spacy-legacy.MishWindowEncoder.v1, 
spacy-legacy.MultiHashEmbed.v1, 
spacy-legacy.TextCatBOW.v1, 
spacy-legacy.TextCatCNN.v1, 
spacy-legacy.TextCatEnsemble.v1, 
spacy-legacy.Tok2Vec.v1, 
spacy-legacy.TransitionBasedParser.v1, 
spacy-transformers.Tok2VecTransformer.v1,
spacy-transformers.TransformerListener.v1, 
spacy-transformers.TransformerModel.v1, 
spacy.CharacterEmbed.v1, 
spacy.EntityLinker.v1, 
spacy.HashEmbedCNN.v1, 
spacy.MaxoutWindowEncoder.v2, 
spacy.MishWindowEncoder.v2, 
spacy.MultiHashEmbed.v1, 
spacy.PretrainCharacters.v1, 
spacy.PretrainVectors.v1, 
spacy.Tagger.v1, 
spacy.TextCatBOW.v1, 
spacy.TextCatCNN.v1, 
spacy.TextCatEnsemble.v2, 
spacy.TextCatLowData.v1, 
spacy.Tok2Vec.v2, 
spacy.Tok2VecListener.v1, 
spacy.TorchBiLSTMEncoder.v1, 
spacy.TransitionBasedParser.v1, 
spacy.TransitionBasedParser.v2

named-entity-recognition bert-language-model spacy-3 spacy-transformers
4个回答
2
投票

发生这种情况是因为 spacy 最近有新的更新 3.1。 base_config 文件的架构被称为“spacy-transformers.TransformerModel.v3”。将其更改为“spacy-transformers.TransformerModel.v1”

[components.transformer.model]
@architectures = "spacy-transformers.TransformerModel.v1"
name = "roberta-base"
tokenizer_config = {"use_fast": true}

1
投票

好吧,我也遇到了同样的问题。我刚刚发现问题是当您以这种方式安装 spacy-transformers 库时引起的:

pip install spacy[transformers]

解决方案:

直接从他们的 GitHub 存储库安装它,如下所示:

pip install git+https://github.com/explosion/spacy-transformers

1
投票

通过以下方式解决此错误:,在 cmd、jupyter 任何地方执行以下行:

  1. 安装最新的spacy:
    pip install spacy
  2. 安装最新的 en core web sm:
    python -m spacy download en_core_web_sm

0
投票

当我从3.4.7更新版本时,问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.