Repository navigation
SavedModelBundle exporter(...) build: mvn install [ERROR] tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor location: class org.tensorflow.proto.framework.StructProtos #100
Description
This is follow-up to #97 (comment) and #97 (comment). I'm trying to build a tensorflow-java with SavedModelBundle exporter(...) but encounter a build error.
Specifically, I git checkout the save_model branch of https://github.com/karllessard/tensorflow-java and mvn install, but encounter a build error. I would raise an issue in https://github.com/karllessard/tensorflow-java, but https://github.com/karllessard/tensorflow-java/issues redirects to https://github.com/karllessard/tensorflow-java/pulls, so I cannot raise an issue there.
Would a colleague kindly advise how to fix the following build error:
root@478b80e86d3b:tensorflow-java-karl# mvn install -e
...
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ tensorflow-core-api ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1678 source files to /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/target/classes
[INFO] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Tensor.java: Some input files use unchecked or unsafe operations.
[INFO] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Tensor.java: Recompile with -Xlint:unchecked for details.
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol
symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[135,55] cannot find symbol
symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_fieldAccessorTable
location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[479,57] cannot find symbol
symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[485,57] cannot find symbol
symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_fieldAccessorTable
location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[536,57] cannot find symbol
symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[82,65] cannot find symbol
symbol: variable internal_static_tensorflow_SaveableObject_descriptor
location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[88,65] cannot find symbol
symbol: variable internal_static_tensorflow_SaveableObject_fieldAccessorTable
location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[290,67] cannot find symbol
symbol: variable internal_static_tensorflow_SaveableObject_descriptor
location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[296,67] cannot find symbol
symbol: variable internal_static_tensorflow_SaveableObject_fieldAccessorTable
location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[329,67] cannot find symbol
symbol: variable internal_static_tensorflow_SaveableObject_descriptor
location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[INFO] 10 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for TensorFlow Java Parent 0.1.0-SNAPSHOT:
[INFO]
[INFO] TensorFlow Java Parent ............................. SUCCESS [ 2.152 s]
[INFO] TensorFlow Tools Library ........................... SUCCESS [02:29 min]
[INFO] TensorFlow Core Parent ............................. SUCCESS [ 0.136 s]
[INFO] TensorFlow Core Annotation Processor ............... SUCCESS [ 4.371 s]
[INFO] TensorFlow Core API Library ........................ FAILURE [08:09 min]
[INFO] TensorFlow Core API Library Platform ............... SKIPPED
[INFO] TensorFlow Framework Library ....................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10:47 min
[INFO] Finished at: 2020-08-14T17:41:27Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project tensorflow-core-api: Compilation failure: Compilation failure:
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
[ERROR] location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[135,55] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_fieldAccessorTable
[ERROR] location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[479,57] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
[ERROR] location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[485,57] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_fieldAccessorTable
[ERROR] location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[536,57] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor
[ERROR] location: class org.tensorflow.proto.framework.StructProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[82,65] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_SaveableObject_descriptor
[ERROR] location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[88,65] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_SaveableObject_fieldAccessorTable
[ERROR] location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[290,67] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_SaveableObject_descriptor
[ERROR] location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[296,67] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_SaveableObject_fieldAccessorTable
[ERROR] location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] /tmp/docker-share/tensorflow-java-karl/tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/SaveableObject.java:[329,67] cannot find symbol
[ERROR] symbol: variable internal_static_tensorflow_SaveableObject_descriptor
[ERROR] location: class org.tensorflow.proto.framework.SavedObjectGraphProtos
[ERROR] -> [Help 1]
Rather than debug https://github.com/karllessard/tensorflow-java, I would be happy if there were a save_model branch in https://github.com/tensorflow/java. However, I'm just trying to build something to test model save/export and load -- it does not matter to me how this is achieved.
Activity
[-]SavedModelBundle exporter(...) build: mvn install [ERROR] tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor location: class org.tensorflow.proto.framework.StructProtos[/-][+]SavedModelBundle export(...) build: mvn install [ERROR] tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor location: class org.tensorflow.proto.framework.StructProtos[/+][-]SavedModelBundle export(...) build: mvn install [ERROR] tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor location: class org.tensorflow.proto.framework.StructProtos[/-][+]SavedModelBundle exporter(...) build: mvn install [ERROR] tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow/proto/framework/BoundedTensorSpecProto.java:[129,55] cannot find symbol symbol: variable internal_static_tensorflow_BoundedTensorSpecProto_descriptor location: class org.tensorflow.proto.framework.StructProtos[/+]karllessard commentedon Aug 14, 2020
Hi @aday00 ,
I'm not sure why you are getting this error, it looks like your generated protos are out-of-sync somehow, maybe a
mvn cleanbefore can do it? (be aware that will retrigger a full Bazel build though)But the
save_modelbranch in my personal repo was just something very experimental showing what could be done and I was not really expecting supporting it for real usage. We just synced up on this topic during the SIG session and now we have a clear plan on how we want to design this before merging it totensorflow/java. This should happen in the next month or so.aday00 commentedon Aug 14, 2020
Thank you kindly @karllessard !
It appears the SIG document is https://docs.google.com/document/d/1RqSIKKFLE8kMSjUuZWsVS4JNCRHIrCYiuWcFZRNk2oU/edit# and mentions this:
It appears @Shajan's changes are discussed in #89 and the commit d845856
I don't see a unit test, so I'm not sure how to use this to save a model. Any tips would be greatly appreciated!
In the mean time, I'm happy to continue with the
save_modelbranch and SavedModelBundleexporter(...). Thanks for this pre-alpha feature, and all the time you've invested in the stewardship of this project! Hopefully I can contribute a bit by testing.karllessard commentedon Aug 14, 2020
Yes, the portion for saving the model is not in this branch yet but work will start soon and might differ a bit from what you see in my
save_modelbranch right now because we will opt for a more "function-centric" API.Keeping you posted! and please feel free to share any feedbacks on the draft version in my repo as they can also apply to the next version.
aday00 commentedon Aug 15, 2020
Thanks @karllessard ! Ran
mvn cleanas suggested:Clean worked, good. Next,
mvn install, but same error:From some SIGJVM email https://groups.google.com/a/tensorflow.org/d/msg/jvm/gGKO-hVS4Pc/LF4rLJOdAQAJ , it seems cherry-picking the
save_modelpatch/changes and applying to the mainline tensorflow-java might work? Thanks also for #101 !aday00 commentedon Aug 15, 2020
The save_model commit is karllessard@bdb0420
That patch won't apply cleanly to mainline tensorflow-java, so I'll try to make the change by hand.
aday00 commentedon Aug 17, 2020
Applying the
saved_model-related changes by hand, to merge into the mainlinetensorflow-java, the build seems to work, and I will test this soon:My changes are almost identical to @karllessard's code karllessard@bdb0420. I sometimes made changes that did not alter the function of the code, but made the code more similar to Karl's branch, which has the
save_modelcode. If we want a branch and PR from my work, I am happy to clean this up further. Prior email suggested that others (e.g. Alexey Zinoviev) may want to test model-saving code like this too https://groups.google.com/a/tensorflow.org/d/msg/jvm/gGKO-hVS4Pc/D0z5yu-gAQAJ.My changes are mostly with changes related to NdArray namespacing. The diffs are below, starting with Ops.java:
Graph.java:
SavedModelBundle:
Session:
SavedModelBundleTest exercises the
exporter(...)method to save a model:If anything looks incorrect, would a colleague kindly let me know? I plan to test soon. Thanks again!
aday00 commentedon Aug 17, 2020
Preliminary tests of model save/load pass. Test output shows
orig_reduced_sum=17.154881 loaded_reduced_sum=17.154881, so the loaded model gives the same result as the original saved model. Good:The main run() method for testing is now:
save_and_load_tests is:
Model save is tested in save_test, which relies on @karllessard's SavedModelBundle
exporter(...)method, thank you!Model load is tested in load_test, which is heavily based on Karl's helpful unit tests:
The result is a saved model in /tmp. Would any colleagues kindly give their opinion -- does this look reasonable?
Session-based saving of Tensorflow models, based on Karl Lessard's code