Code Monkey home page Code Monkey logo

Comments (10)

dsindex avatar dsindex commented on June 13, 2024

@bazhura

what about do not patch?
i means

$ git clone --recurse-submodules https://github.com/tensorflow/serving
# checkout proper version of serving
$ cd serving
$ git checkout 89e9dfbea055027bc31878ee8da66b54a701a746
$ git submodule update --init --recursive
# checkout proper version of tf_models
$ cd tf_models
$ git checkout a4b7bb9a5dd2c021edcd3d68d326255c734d0ef0

$ cd syntaxnet
$ cd tensorflow
$ ./configure
$ cd ..

# modify ./tensorflow/tensorflow/workspace.bzl for downloading 'zlib'
# native.new_http_archive(
#    name = "zlib_archive",
#    url = "http://zlib.net/fossils/zlib-1.2.8.tar.gz",
#    sha256 = "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d",
#    build_file = path_prefix + "zlib.BUILD",
#  )

$ bazel test --linkopt=-headerpad_max_install_names syntaxnet/... util/utf8/...

and then

$ git clone https://github.com/dsindex/syntaxnet.git work
$ cd 
....
$ ./train.sh
....

finally, export models and use it
(say, /path/to/models)

# goto pathed-version
$ cat /path/to/models/context.pbtxt.template | sed "s=OUTPATH=/path/to/models=" > /path/to/models/context.pbtxt
$ bazel-bin/tensorflow_serving/example/parsey_mcparseface --model_dir=/path/to/models --export_path=exported

# modify all path in exported/00000001/assets/context.pbtxt
# for example, 
# from
# input {
#  name: "tag-map"
#  Part {
#    file_pattern: "syntaxnet/models/parsey_mcparseface/tag-map"
#  }
# }
# to
# input {
#  name: "tag-map"
#  Part {
#    file_pattern: "tag-map"
#  }
# }

# run parsey_api with exported model
$ ./bazel-bin/tensorflow_serving/example/parsey_api --port=9000 exported/00000001

from syntaxnet.

bazhura avatar bazhura commented on June 13, 2024

@dsindex
that's an idea, will try without patch and come back with a result.
thank you!

from syntaxnet.

dsindex avatar dsindex commented on June 13, 2024

@bazhura

unfortunately, i got the same error.

$ cp -rf /other_path/models trained_models
$ cat trained_models/context.pbtxt.template | sed "s=OUTPATH=/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/trained_models=" > trained_models/context.pbtxt
$ bazel-bin/tensorflow_serving/example/parsey_mcparseface --model_dir=trained_models --export_path=exported
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 49 terms from /Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/trained_models/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features:
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names:
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims:
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 49 terms from /Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/trained_models/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features: input.word input(1).word input(2).word input(3).word stack.word stack(1).word stack(2).word stack(3).word stack.child(1).word stack.child(1).sibling(-1).word stack.child(-1).word stack.child(-1).sibling(1).word stack(1).child(1).word stack(1).child(1).sibling(-1).word stack(1).child(-1).word stack(1).child(-1).sibling(1).word stack.child(2).word stack.child(-2).word stack(1).child(2).word stack(1).child(-2).word;input.tag input(1).tag input(2).tag input(3).tag stack.tag stack(1).tag stack(2).tag stack(3).tag stack.child(1).tag stack.child(1).sibling(-1).tag stack.child(-1).tag stack.child(-1).sibling(1).tag stack(1).child(1).tag stack(1).child(1).sibling(-1).tag stack(1).child(-1).tag stack(1).child(-1).sibling(1).tag stack.child(2).tag stack.child(-2).tag stack(1).child(2).tag stack(1).child(-2).tag;stack.child(1).label stack.child(1).sibling(-1).label stack.child(-1).label stack.child(-1).sibling(1).label stack(1).child(1).label stack(1).child(1).sibling(-1).label stack(1).child(-1).label stack(1).child(-1).sibling(1).label stack.child(2).label stack.child(-2).label stack(1).child(2).label stack(1).child(-2).label
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names: words;tags;labels
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims: 64;32;32
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 18752 terms from /Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/trained_models/word-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 50 terms from /Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/trained_models/tag-map.
Traceback (most recent call last):
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 188, in <module>
    tf.app.run()
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/org_tensorflow/tensorflow/python/platform/app.py", line 30, in run
    sys.exit(main(sys.argv))
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 172, in main
    model[prefix]["documents"] = Build(sess, source, model[prefix])
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 75, in Build
    document_source=document_source)
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/syntaxnet/syntaxnet/structured_graph_builder.py", line 242, in AddEvaluation
    document_source=document_source))
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/syntaxnet/syntaxnet/structured_graph_builder.py", line 100, in _AddBeamReader
    documents_from_input=documents_from_input)
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/syntaxnet/syntaxnet/ops/gen_parser_ops.py", line 100, in beam_parse_reader
    name=name)
  File "/Users/donghwon/Desktop/develop/models/syntaxnet/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/org_tensorflow/tensorflow/python/framework/op_def_library.py", line 627, in apply_op
    (key, op_type_name, attr_value.i, attr_def.minimum))
ValueError: Attr 'feature_size' of 'BeamParseReader' Op passed 0 less than minimum 1.

from syntaxnet.

dsindex avatar dsindex commented on June 13, 2024

i found differences b/w a parsey and a trainded model.
Parsey uses 'brain_tagger' prefix but 'train.sh' uses 'brain_pos' prefix. so, export module can't match it.
i am going to fix it.

from syntaxnet.

dsindex avatar dsindex commented on June 13, 2024

@bazhura

after modifying 'brain_pos' to 'brain_tagger' in all related scripts and directories.
it works well.

  • i committed these modifications
    • train.sh, context.pbtxt, ...
  • note that you should modify train.sh to use xcopy_model() for version a4b7bb9a5dd2c021edcd3d68d326255c734d0ef0
    • since recent version of syntaxnet generates different model files
$ bazel-bin/tensorflow_serving/example/parsey_mcparseface --model_dir=trained_models --export_path=exported
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 49 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features: stack(3).word stack(2).word stack(1).word stack.word input.word input(1).word input(2).word input(3).word; input.digit input.hyphen; stack.suffix(length=2) input.suffix(length=2) input(1).suffix(length=2); stack.prefix(length=2) input.prefix(length=2) input(1).prefix(length=2)
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names: words;other;suffix;prefix
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims: 64;4;8;8
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 18752 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/word-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 50 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/tag-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 49 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features: input.word input(1).word input(2).word input(3).word stack.word stack(1).word stack(2).word stack(3).word stack.child(1).word stack.child(1).sibling(-1).word stack.child(-1).word stack.child(-1).sibling(1).word stack(1).child(1).word stack(1).child(1).sibling(-1).word stack(1).child(-1).word stack(1).child(-1).sibling(1).word stack.child(2).word stack.child(-2).word stack(1).child(2).word stack(1).child(-2).word; input.tag input(1).tag input(2).tag input(3).tag stack.tag stack(1).tag stack(2).tag stack(3).tag stack.child(1).tag stack.child(1).sibling(-1).tag stack.child(-1).tag stack.child(-1).sibling(1).tag stack(1).child(1).tag stack(1).child(1).sibling(-1).tag stack(1).child(-1).tag stack(1).child(-1).sibling(1).tag stack.child(2).tag stack.child(-2).tag stack(1).child(2).tag stack(1).child(-2).tag; stack.child(1).label stack.child(1).sibling(-1).label stack.child(-1).label stack.child(-1).sibling(1).label stack(1).child(1).label stack(1).child(1).sibling(-1).label stack(1).child(-1).label stack(1).child(-1).sibling(1).label stack.child(2).label stack.child(-2).label stack(1).child(2).label stack(1).child(-2).label
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names: words;tags;labels
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims: 64;32;32
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 18752 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/word-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 50 terms from /Users/donghwon/Desktop/develop/serving/tf_models/syntaxnet/work/models/tag-map.
INFO:tensorflow:Exporting trained model to exported
INFO:tensorflow:Write assest into: exported/00000001-tmp/assets using gfile_copy.
INFO:tensorflow:Copying asset trained_models/context to path exported/00000001-tmp/assets/context.
INFO:tensorflow:Copying asset trained_models/parser-params.meta to path exported/00000001-tmp/assets/parser-params.meta.
INFO:tensorflow:Copying asset trained_models/context.pbtxt.template to path exported/00000001-tmp/assets/context.pbtxt.template.
INFO:tensorflow:Copying asset trained_models/label-map to path exported/00000001-tmp/assets/label-map.
INFO:tensorflow:Copying asset trained_models/prefix-table to path exported/00000001-tmp/assets/prefix-table.
INFO:tensorflow:Copying asset trained_models/lcword-map to path exported/00000001-tmp/assets/lcword-map.
INFO:tensorflow:Copying asset trained_models/parser-params to path exported/00000001-tmp/assets/parser-params.
INFO:tensorflow:Copying asset trained_models/category-map to path exported/00000001-tmp/assets/category-map.
INFO:tensorflow:Copying asset trained_models/tag-to-category to path exported/00000001-tmp/assets/tag-to-category.
INFO:tensorflow:Copying asset trained_models/word-map to path exported/00000001-tmp/assets/word-map.
INFO:tensorflow:Copying asset trained_models/tag-map to path exported/00000001-tmp/assets/tag-map.
INFO:tensorflow:Copying asset trained_models/tagger-params to path exported/00000001-tmp/assets/tagger-params.
INFO:tensorflow:Copying asset trained_models/tagger-params.meta to path exported/00000001-tmp/assets/tagger-params.meta.
INFO:tensorflow:Copying asset trained_models/suffix-table to path exported/00000001-tmp/assets/suffix-table.
INFO:tensorflow:Copying asset trained_models/context.pbtxt to path exported/00000001-tmp/assets/context.pbtxt.

$ ./bazel-bin/tensorflow_serving/example/parsey_api --port=9000 exported/00000001
$ bazel-bin/tensorflow_serving/example/parsey_client --server=localhost:9000
hello syntaxnet
result {
  docid: "-:0"
  text: "hello syntaxnet"
  token {
    word: "hello"
    start: 0
    end: 4
    head: 1
    tag: "UH"
    category: "UH"
    label: "amod"
  }
  token {
    word: "syntaxnet"
    start: 5
    end: 13
    tag: "NN"
    category: "NN"
    label: "ROOT"
  }
}

Input :  hello syntaxnet
Parsing :
{"result": [{"text": "hello syntaxnet", "token": [{"category": "UH", "head": 1, "end": 4, "label": "amod", "start": 0, "tag": "UH", "word": "hello"}, {"category": "NN", "end": 13, "label": "ROOT", "start": 5, "tag": "NN", "word": "syntaxnet"}], "docid": "-:0"}]}

from syntaxnet.

bazhura avatar bazhura commented on June 13, 2024

Hello,
I have trained the new model with xcopy_model(): change name to copy_model() in train.sh (and remove the original copy_model() function)

Also, build syntaxnet as before, but cloning the very recent version of your repo. Still cannot export:

raise ValueError("Restore called with invalid save path %s" % save_path)
ValueError: Restore called with invalid save path ../models/tagger-params

Did you get the results with or without patching? My steps:

alina@machine:~/work$ cat models/context.pbtxt.template | sed "s=OUTPATH=/home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0=" > models/context.pbtxt

alina@machine:~/work$ bazel-bin/tensorflow_serving/example/parsey_mcparseface --model_dir=models --export_path=exported
bash: bazel-bin/tensorflow_serving/example/parsey_mcparseface: No such file or directory

alina@machine:~/work$ cd serving/

alina@machine:~/work/serving$ bazel-bin/tensorflow_serving/example/parsey_mcparseface --model_dir=../models --export_path=exported

I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 41 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features: stack(3).word stack(2).word stack(1).word stack.word input.word input(1).word input(2).word input(3).word; input.digit input.hyphen; stack.suffix(length=2) input.suffix(length=2) input(1).suffix(length=2); stack.prefix(length=2) input.prefix(length=2) input(1).prefix(length=2)
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names: words;other;suffix;prefix
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims: 64;4;8;8
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 34340 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/word-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 17 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/tag-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 41 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/label-map.
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:35] Features: input.word input(1).word input(2).word input(3).word stack.word stack(1).word stack(2).word stack(3).word stack.child(1).word stack.child(1).sibling(-1).word stack.child(-1).word stack.child(-1).sibling(1).word stack(1).child(1).word stack(1).child(1).sibling(-1).word stack(1).child(-1).word stack(1).child(-1).sibling(1).word stack.child(2).word stack.child(-2).word stack(1).child(2).word stack(1).child(-2).word; input.tag input(1).tag input(2).tag input(3).tag stack.tag stack(1).tag stack(2).tag stack(3).tag stack.child(1).tag stack.child(1).sibling(-1).tag stack.child(-1).tag stack.child(-1).sibling(1).tag stack(1).child(1).tag stack(1).child(1).sibling(-1).tag stack(1).child(-1).tag stack(1).child(-1).sibling(1).tag stack.child(2).tag stack.child(-2).tag stack(1).child(2).tag stack(1).child(-2).tag; stack.child(1).label stack.child(1).sibling(-1).label stack.child(-1).label stack.child(-1).sibling(1).label stack(1).child(1).label stack(1).child(1).sibling(-1).label stack(1).child(-1).label stack(1).child(-1).sibling(1).label stack.child(2).label stack.child(-2).label stack(1).child(2).label stack(1).child(-2).label
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:36] Embedding names: words;tags;labels
I external/syntaxnet/syntaxnet/embedding_feature_extractor.cc:37] Embedding dims: 64;32;32
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 34340 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/word-map.
I external/syntaxnet/syntaxnet/term_frequency_map.cc:101] Loaded 17 terms from /home/alina/work/UD_Croatian/tmp/syntaxnet-output/brain_tagger/greedy/64-0.08-3600-0.9-0/tag-map.
Traceback (most recent call last):
File "/home/alina/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 188, in
tf.app.run()
File "/home/alina/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/org_tensorflow/tensorflow/python/platform/app.py", line 30, in run
sys.exit(main(sys.argv))
File "/home/alina/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 172, in main
model[prefix]["documents"] = Build(sess, source, model[prefix])
File "/home/alina/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/tensorflow_serving/example/parsey_mcparseface.py", line 79, in Build
parser.saver.restore(sess, model_path)
File "/home/alina/work/serving/bazel-bin/tensorflow_serving/example/parsey_mcparseface.runfiles/tf_serving/external/org_tensorflow/tensorflow/python/training/saver.py", line 1127, in restore
raise ValueError("Restore called with invalid save path %s" % save_path)
ValueError: Restore called with invalid save path ../models/tagger-params

from syntaxnet.

dsindex avatar dsindex commented on June 13, 2024

i tested without patch.
it seems that OUTPATH should be the path to 'modes' directory.

from syntaxnet.

bazhura avatar bazhura commented on June 13, 2024

Would insert UD_Language folder into the work/serving/tf_models/syntaxnet/syntaxnet/models be the right thing to do? Parsey_mcparseface folder is there. Thank you!

│ ├── UD_Language
│ │ └── tmp
│ │ └── syntaxnet-output
│ │ ├── brain_parser
│ │ │ ├── greedy
│ │ │ │ └── 512x512-0.08-4400-0.85-4
│ │ │ └── structured
│ │ │ └── 512x512-0.02-100-0.9-0
│ │ └── brain_tagger
│ │ └── greedy
│ │ └── 64-0.08-3600-0.9-0
│ │ └── {... label-map in here...}

from syntaxnet.

dsindex avatar dsindex commented on June 13, 2024

@bazhura

since parsey_mcparseface tries to read resources files from the paths specified in models/context/pbtxt, OUTPATH should be like bellow :

$ pwd
/path/to
$ cat models/context.pbtxt.template | sed "s=OUTPATH=/path/to/models=" > models/context.pbtxt

i am not sure whether the error you got is related. :)

from syntaxnet.

bazhura avatar bazhura commented on June 13, 2024

@dsindex thank you for staying with me, I didn't succeed this time either :( will close the issue.

from syntaxnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.