Модель поезда SyntaxNet

Я пытаюсь обучить модель Google Syntaxnet на другом языке, используя наборы данных, доступные по адресу http://universaldependencies.org/ и следуя этому руководству. Я редактировал syntaxnet/context.pbtxt файл, но когда я пытаюсь запустить bazel's script При условии, что в руководстве я получил следующую ошибку:

syntaxnet/term_frequency_map.cc:62] Check failed: ::tensorflow::Status::OK() == (tensorflow::Env::Default()->NewRandomAccessFile(filename, &file)) (OK vs. Not found: brain_pos/greedy/0/label-map)

Я сомневаюсь: я должен предоставить этот файл и другие файлы, такие как fine-to-universal.map, tag-map, word-map и так далее, или шаг поезда должен создать их, используя набор данных обучения? И если я должен предоставить их, как я могу их построить?

заранее спасибо

3 ответа

Я помню, что в начале у меня была похожая ошибка. Использовали ли вы точный код в разделе "Обучение парсера, шаг 1: локальная предварительная подготовка"? Поскольку вы заметите, что там есть неинициализированная переменная $PARAMS, которая должна представлять параметры вашего обученного тега POS. Когда вы обучаете тегер (см. Ранее в том же руководстве), он будет создавать файлы в models/brain_pos/greedy/$PARAMS. Я считаю, что в вашем случае эта переменная $PARAMS была интерпретирована как 0, и скрипт ищет обученного тегера в brain_pos/greedy/0, который он явно не находит. Если вы просто добавите строку в начале скрипта, которая указывает параметры обучаемого тегера (128-0.08-3600-0.9-0 в руководстве), он должен работать.

Таким образом:

$PARAMS=128-0.08-3600-0.9-0
bazel-bin/syntaxnet/parser_trainer \
  --arg_prefix=brain_parser \
  --batch_size=32 \
  --projectivize_training_set \
  --decay_steps=4400 \
  --graph_builder=greedy \
  --hidden_layer_sizes=200,200 \
  --learning_rate=0.08 \
  --momentum=0.85 \
  --output_path=models \
  --task_context=models/brain_pos/greedy/$PARAMS/context \
  --seed=4 \
  --training_corpus=tagged-training-corpus \
  --tuning_corpus=tagged-tuning-corpus \
  --params=200x200-0.08-4400-0.85-4

Я пытаюсь сделать то же самое, что и вы, и столкнулся с точно такой же ошибкой. Оказалось, что я случайно убрал флаг --compute_lexicon, Я полагаю, что этот флаг заботится о создании tag-map, word-map и т.д. Так что просто убедитесь, что --compute_lexicon включен.

Ну, я получил похожую ошибку, и, честно говоря, я не выяснил, в чем была проблема, но я использовал эту ссылку, чтобы изучить процесс обучения и тестирования, и он предоставляет полезную документацию для обучения.

Вы не можете изменить формат обучающих, настраиваемых и тестовых наборов данных из .conllu в .conl или учебная оболочка может быть перепутана каталогами, которые упомянуты в --arg_prefix, --output_path, --task_context или даже --model_path

Другие вопросы по тегам