gpt4 book ai didi

syntaxnet - 如何预加载 syntaxnet 以便花费更少的时间来提供依赖项解析输出

转载 作者:行者123 更新时间:2023-12-04 00:24:16 24 4
gpt4 key购买 nike

我正在使用 syntaxnet 中提供的 demo.sh存储库。如果我以 '\n' 分隔输入,运行 3000 行文本需要 27.05 秒,但是当我单独运行每一行时,需要一个多小时。

这意味着加载模型需要超过 2.5 秒。如果把这一步分开来,放到现金上,会让整个流水线更快。

这里是 demo.sh 的修改版本:-

PARSER_EVAL=bazel-bin/syntaxnet/parser_eval
MODEL_DIR=syntaxnet/models/parsey_mcparseface
[[ "$1" == "--conll" ]] && INPUT_FORMAT=stdin-conll || INPUT_FORMAT=stdin

$PARSER_EVAL \
--input=$INPUT_FORMAT \
--output=stdout-conll \
--hidden_layer_sizes=64 \
--arg_prefix=brain_tagger \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/tagger-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
| \
$PARSER_EVAL \
--input=stdin-conll \
--output=stdout-conll \
--hidden_layer_sizes=512,512 \
--arg_prefix=brain_parser \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/parser-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \

我想构建一个函数调用,它将采用输入语句,并提供存储在局部变量上的依赖解析器的输出,如下所示(下面的代码只是为了让问题更清楚)

dependency_parsing_model = ...

def give_dependency_parser(sentence,model=dependency_parsing_model):
...
#logic here
...
return dependency_parsing_output

在上面,模型存储在一个变量中,因此在函数调用时运行每一行花费的时间更少。

如何做到这一点?

最佳答案

syntaxnet 的 Parsey McParseface 的当前版本有两个您遇到的限制:

  1. 句子是从标准输入或文件中读取的,而不是从变量中读取的
  2. 模型分为两部分,而不是一个可执行文件

我有一个 tensorflow/models 的分支:

https://github.com/dmansfield/models/tree/documents-from-tensor

我正在与维护者合作进行合并。使用该代码分支,您可以在一个图中构建整个模型(使用名为 parsey_mcparseface.py 的新 Python 脚本)并使用张量(即 Python 变量)输入句子。

恐怕这不是世界上最好的答案,因为它在不断变化。目前没有简单的方法可以让它发挥作用。

关于syntaxnet - 如何预加载 syntaxnet 以便花费更少的时间来提供依赖项解析输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com