3

syntaxnetリポジトリで提供されている demo.sh を使用しています。'\n'区切りで入力すると、3000 行のテキストを実行するのに 27.05 秒かかりますが、各行を個別に実行すると 1 時間以上かかります。

これは、モデルの読み込みに 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

上記では、モデルは変数に格納されるため、関数呼び出しで各行を実行するのにかかる時間が短くなります。

これを行う方法 ?

4

1 に答える 1