Некоторое время я использую команду Spacy 2.2.3 'train' под Python 3.8.1. Все работало нормально, пока я не решил перейти на использование GPU. После установки необходимой поддержки NVIIA CUDA я добавил поддержку Spacy GPU с помощью
pip install -u spacy [cuda101]
На мой сюрприз, это обновило все до Spacy 2.3. Так что мне пришлось проверить и загрузить большие модели en. Пришлось делать это дважды, но ...
Однако после этого обновления моя просторная команда 'spacy train' с использованием -v en_core_web_md продолжает давать сбой (см. Ниже). Я удалил spacy и переустановил несколько раз, но это не помогает. Я подозреваю, что что-то где-то кешируется. При повторных установках spacy используется «кешируемое» колесо: Использование кэшированного spacy-2.3.0-cp38-cp38-win_amd64.whl (9,6 МБ) Возможно, он поврежден, но я не вижу, как избавиться от этого кешированного файла.
Отслеживание:
Training pipeline: ['tagger', 'parser', 'ner']
Using GPU: 0
Starting with blank model 'en'
Loading vector from model 'en_core_web_md'
Traceback (most recent call last):
File "C:\Program Files\Python\lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Program Files\Python\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python\lib\site-packages\spacy\__main__.py", line 33, in <module>
plac.call(commands[command], sys.argv[1:])
File "C:\Program Files\Python\lib\site-packages\plac_core.py", line 367, in call
cmd, result = parser.consume(arglist)
File "C:\Program Files\Python\lib\site-packages\plac_core.py", line 232, in consume
return cmd, self.func(*(args + varargs + extraopts), **kwargs)
File "C:\Program Files\Python\lib\site-packages\spacy\cli\train.py", line 266, in train
_load_vectors(nlp, vectors)
File "C:\Program Files\Python\lib\site-packages\spacy\cli\train.py", line 645, in _load_vectors
util.load_model(vectors, vocab=nlp.vocab)
File "C:\Program Files\Python\lib\site-packages\spacy\util.py", line 170, in load_model
return load_model_from_package(name, **overrides)
File "C:\Program Files\Python\lib\site-packages\spacy\util.py", line 191, in load_model_from_package
return cls.load(**overrides)
File "C:\Program Files\Python\lib\site-packages\en_core_web_md\__init__.py", line 12, in load
return load_model_from_init_py(__file__, **overrides)
File "C:\Program Files\Python\lib\site-packages\spacy\util.py", line 235, in load_model_from_init_py
return load_model_from_path(data_path, meta, **overrides)
File "C:\Program Files\Python\lib\site-packages\spacy\util.py", line 216, in load_model_from_path
component = nlp.create_pipe(factory, config=config)
File "C:\Program Files\Python\lib\site-packages\spacy\language.py", line 309, in create_pipe
return factory(self, **config)
File "C:\Program Files\Python\lib\site-packages\spacy\language.py", line 1080, in factory
return obj.from_nlp(nlp, **cfg)
File "pipes.pyx", line 62, in spacy.pipeline.pipes.Pipe.from_nlp
File "pipes.pyx", line 378, in spacy.pipeline.pipes.Tagger.__init__
TypeError: __init__() got multiple values for keyword argument 'vocab'