首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >训练SyntaxNet模型

训练SyntaxNet模型
EN

Stack Overflow用户
提问于 2016-05-20 23:36:53
回答 3查看 976关注 0票数 1

我正在尝试使用http://universaldependencies.org/上提供的数据集,并遵循此tutorial,以不同的语言训练Google Syntaxnet模型。我编辑了syntaxnet/context.pbtxt文件,但是当我尝试运行指南中提供的bazel's script时,我得到了以下错误:

代码语言:javascript
复制
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.maptag-mapword-map等,或者训练步骤必须使用训练数据集创建它们?如果我必须提供它们,我如何构建它们呢?

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2016-06-06 14:55:35

我正试着做和你一样的事情,却遇到了完全相同的错误。事实证明,我不小心删除了标志--compute_lexicon。我认为这个标志负责创建tag-mapword-map等,所以只需确保启用了--compute_lexicon即可。

票数 0
EN

Stack Overflow用户

发布于 2016-06-09 02:57:57

嗯,我得到了一个类似的错误,老实说,我没有找出问题所在,但我使用了这个link来学习培训和测试过程,它为培训提供了有用的文档。

您可能不会将训练、调优和测试数据集的格式从.conllu更改为.conl,或者训练shell可能会被--arg_prefix--output_path、--task_context甚至--model_path中提到的目录搞混

票数 0
EN

Stack Overflow用户

发布于 2016-07-08 18:23:14

我记得在一开始就有过类似的错误。您是否使用了“训练解析器步骤1:本地预训练”下的确切代码?因为你会注意到里面有一个未初始化的$PARAMS变量,它应该代表你训练过的POS机的参数。当你训练一个标记器(参见前面的教程)时,它会在model/brain_pos/greedy/$PARAMS中创建文件。我相信在您的例子中,这个$PARAMS变量被解释为0,而脚本正在brain_pos/greedy/0中寻找一个经过训练的标记器,但显然找不到。如果您只需在脚本的开头添加一行指定训练有素的标记器的参数(在本教程中为128-0.08-3600-0.9-0),它应该可以工作。

因此:

代码语言:javascript
复制
$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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37350525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档