Python 3.x 属性错误:模块';丘比&x27;没有属性';分散添加';

Python 3.x 属性错误:模块';丘比&x27;没有属性';分散添加';,python-3.x,spacy,ner,cupy,Python 3.x,Spacy,Ner,Cupy,在尝试运行spacy NER培训模型时 空间要求(gpu) 我得到了这个错误: AttributeError Traceback (most recent call last) <ipython-input-6-a86608cac558> in <module> 3 } 4 start_time = time.time() ----> 5 train_model(data) <ip

在尝试运行spacy NER培训模型时

空间要求(gpu)

我得到了这个错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-6-a86608cac558> in <module>
      3 }
      4 start_time = time.time()
----> 5 train_model(data)

<ipython-input-2-10f04ac303a6> in train_model(train_data)
     82     other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
     83     with nlp.disable_pipes(*other_pipes):
---> 84         optimizer = nlp.begin_training()
     85         for itn in range(1):
     86             print("Starting iteration " + str(itn))

c:\users\aventus\envs\py38\lib\site-packages\spacy\language.py in begin_training(self, get_gold_tuples, sgd, component_cfg, **cfg)
    623                 kwargs = component_cfg.get(name, {})
    624                 kwargs.update(cfg)
--> 625                 proc.begin_training(
    626                     get_gold_tuples,
    627                     pipeline=self.pipeline,

nn_parser.pyx in spacy.syntax.nn_parser.Parser.begin_training()

_parser_model.pyx in spacy.syntax._parser_model.ParserModel.begin_training()

c:\users\aventus\envs\py38\lib\site-packages\thinc\check.py in checked_function(wrapped, instance, args, kwargs)
    154                     raise ExpectedTypeError(check, ["Callable"])
    155                 check(arg_id, fix_args, kwargs)
--> 156         return wrapped(*args, **kwargs)
    157 
    158     def arg_check_adder(func):

c:\users\aventus\envs\py38\lib\site-packages\thinc\neural\_classes\model.py in begin_training(self, train_X, train_y, **trainer_cfg)
    120     def begin_training(self, train_X, train_y=None, **trainer_cfg):
    121         for hook in self.on_data_hooks:
--> 122             hook(self, train_X, train_y)
    123         return self.Trainer(self, **trainer_cfg)
    124 

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in <lambda>(model, X, y)
    149 
    150 @describe.on_data(
--> 151     _set_dimensions_if_needed, lambda model, X, y: model.init_weights(model)
    152 )
    153 @describe.attributes(

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in init_weights(model)
    268         t_i = 0
    269         for t_i in range(t_max):
--> 270             acts1 = predict(ids, tokvecs)
    271             var = model.ops.xp.var(acts1)
    272             mean = model.ops.xp.mean(acts1)

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in predict(ids, tokvecs)
    254                 (hiddens.shape[0] * model.nF, model.nO * model.nP)
    255             )
--> 256             model.ops.scatter_add(vectors, ids.flatten(), hiddens)
    257             vectors = vectors.reshape((vectors.shape[0], model.nO, model.nP))
    258             vectors += model.b

ops.pyx in thinc.neural.ops.CupyOps.scatter_add()

c:\users\aventus\envs\py38\lib\site-packages\cupy\__init__.py in __getattr__(name)
    873         value = _deprecated_attrs.get(name)
    874         if value is None:
--> 875             raise AttributeError(
    876                 f"module 'cupy' has no attribute {name!r}")
    877         attr, eq_attr = value

AttributeError: module 'cupy' has no attribute 'scatter_add'
  • 操作系统-视窗10
  • Python 3.8
  • spacy 2.2.4
  • 丘比特9.0.0
  • Nvidia驱动程序版本:466.11
  • CUDA版本:11.1
  • 英伟达GeForce GTX 1660Ti

如何消除这个错误?非常感谢您的帮助。

有几个选项可以避免此错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-6-a86608cac558> in <module>
      3 }
      4 start_time = time.time()
----> 5 train_model(data)

<ipython-input-2-10f04ac303a6> in train_model(train_data)
     82     other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
     83     with nlp.disable_pipes(*other_pipes):
---> 84         optimizer = nlp.begin_training()
     85         for itn in range(1):
     86             print("Starting iteration " + str(itn))

c:\users\aventus\envs\py38\lib\site-packages\spacy\language.py in begin_training(self, get_gold_tuples, sgd, component_cfg, **cfg)
    623                 kwargs = component_cfg.get(name, {})
    624                 kwargs.update(cfg)
--> 625                 proc.begin_training(
    626                     get_gold_tuples,
    627                     pipeline=self.pipeline,

nn_parser.pyx in spacy.syntax.nn_parser.Parser.begin_training()

_parser_model.pyx in spacy.syntax._parser_model.ParserModel.begin_training()

c:\users\aventus\envs\py38\lib\site-packages\thinc\check.py in checked_function(wrapped, instance, args, kwargs)
    154                     raise ExpectedTypeError(check, ["Callable"])
    155                 check(arg_id, fix_args, kwargs)
--> 156         return wrapped(*args, **kwargs)
    157 
    158     def arg_check_adder(func):

c:\users\aventus\envs\py38\lib\site-packages\thinc\neural\_classes\model.py in begin_training(self, train_X, train_y, **trainer_cfg)
    120     def begin_training(self, train_X, train_y=None, **trainer_cfg):
    121         for hook in self.on_data_hooks:
--> 122             hook(self, train_X, train_y)
    123         return self.Trainer(self, **trainer_cfg)
    124 

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in <lambda>(model, X, y)
    149 
    150 @describe.on_data(
--> 151     _set_dimensions_if_needed, lambda model, X, y: model.init_weights(model)
    152 )
    153 @describe.attributes(

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in init_weights(model)
    268         t_i = 0
    269         for t_i in range(t_max):
--> 270             acts1 = predict(ids, tokvecs)
    271             var = model.ops.xp.var(acts1)
    272             mean = model.ops.xp.mean(acts1)

c:\users\aventus\envs\py38\lib\site-packages\spacy\_ml.py in predict(ids, tokvecs)
    254                 (hiddens.shape[0] * model.nF, model.nO * model.nP)
    255             )
--> 256             model.ops.scatter_add(vectors, ids.flatten(), hiddens)
    257             vectors = vectors.reshape((vectors.shape[0], model.nO, model.nP))
    258             vectors += model.b

ops.pyx in thinc.neural.ops.CupyOps.scatter_add()

c:\users\aventus\envs\py38\lib\site-packages\cupy\__init__.py in __getattr__(name)
    873         value = _deprecated_attrs.get(name)
    874         if value is None:
--> 875             raise AttributeError(
    876                 f"module 'cupy' has no attribute {name!r}")
    877         attr, eq_attr = value

AttributeError: module 'cupy' has no attribute 'scatter_add'

  • 将cupy降级为
    cupy它看起来像是以前的
    cupy.scatter\u add()
    似乎是
    cupyx.scatter\u add()
    。切换到较旧版本的
    cupy
    (可能在8.0之前),或者重构spacy NER代码以使用
    cupyx.scatter\u add()
    。你还没有给spacy NER代码提供链接或任何东西,所以我想我的建议到此为止。如果你在干净的机器上仔细使用spacy的说明安装spacy,您可能会自动获得正确版本的cupy。我使用pip install-U spacy在虚拟环境中安装了spacy,并使用pip install cupy-CUDA111单独安装了cupy,这可能是导致此问题的原因。那么我该怎么办?