Spacy - ValueError: Не удается прочитать файл: models / model-best / precision. json - PullRequest
0 голосов
/ 23 января 2020

Я хотел обучить модель Spacy на Swedbank sh UD Treebank.

Для этого я следовал инструкциям на странице spacy: https://spacy.io/usage/training#spacy -train-cli

Само обучение проходит нормально, но в конце оно пытается открыть файл, который по какой-то причине не существует. По крайней мере, не в этом месте.

USER@Ubuntu18:~/spacy_models/sv$ python -m spacy train sv models talbanken-json/sv_talbanken-ud-train.json talbanken-json/sv_talbanken-ud-dev.json 
⚠ Output directory is not empty
This can lead to unintended side effects when saving the model. Please use an
empty directory or a different path instead. If the specified output path
doesn't exist, the directory will be created for you.
Training pipeline: ['tagger', 'parser', 'ner']
Starting with blank model 'sv'
Counting training words (limit=0)

Itn  Tag Loss    Tag %    Dep Loss    UAS     LAS    NER Loss   NER P   NER R   NER F   Token %  CPU WPS
---  ---------  --------  ---------  ------  ------  ---------  ------  ------  ------  -------  -------
  1  23722.240    87.792  74889.173  67.796  56.740      0.000   0.000   0.000   0.000  100.000    15740                                                                                                                             
....                                                                                                                          
 30    780.531    93.508  13930.092  81.295  75.906      0.000   0.000   0.000   0.000  100.000    15569                                                                                                                             
✔ Saved model to output directory
models/model-final

Traceback (most recent call last):
  File "/home/USER/miniconda3/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/USER/miniconda3/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/spacy/__main__.py", line 33, in <module>
    plac.call(commands[command], sys.argv[1:])
  File "/home/USER/miniconda3/lib/python3.7/site-packages/plac_core.py", line 328, in call
    cmd, result = parser.consume(arglist)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/plac_core.py", line 207, in consume
    return cmd, self.func(*(args + varargs + extraopts), **kwargs)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/spacy/cli/train.py", line 497, in train
    best_model_path = _collate_best_model(meta, output_path, nlp.pipe_names)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/spacy/cli/train.py", line 559, in _collate_best_model
    bests[component] = _find_best(output_path, component)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/spacy/cli/train.py", line 578, in _find_best
    accs = srsly.read_json(epoch_model / "accuracy.json")
  File "/home/USER/miniconda3/lib/python3.7/site-packages/srsly/_json_api.py", line 50, in read_json
    file_path = force_path(location)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/srsly/util.py", line 21, in force_path
    raise ValueError("Can't read file: {}".format(location))
ValueError: Can't read file: models/model-best/accuracy.json

Сама соответствующая папка содержит только файл meta.json:

$ ls models/model-best/
meta.json  ner  parser  tagger  tokenizer  vocab

К счастью, эта проблема не влияет на обучение самой модели. , Тем не менее было бы неплохо, если бы я мог запустить его без сбоев.

Могу ли я что-нибудь сделать, чтобы это исправить?

1 Ответ

2 голосов
/ 23 января 2020

Обратите внимание на предупреждение, отображаемое сценарием, и начните с пустой выходной директории:

⚠ Output directory is not empty
This can lead to unintended side effects when saving the model. Please use an
empty directory or a different path instead. If the specified output path
doesn't exist, the directory will be created for you.
...