我在Python中创建了一个可服务的LSTM模型但是当我尝试在Java中使用该模型时,我收到了一个错误。
以下是我加载模型的Java代码:
org.tensorflow.Session session = SavedModelBundle.load(myModelDirectory, "serve").session();
以下是我遇到的错误:
Loading SavedModel from ...:
[libprotobuf ERROR external/protobuf/src/google/protobuf/text_format.cc:287] Error parsing text-format tensorflow.SavedModel: 80:13: Unknown enumeration value of "DT_VARIANT" for field "type".
我已经检查了saved_model.pbtxt的servable模型并找到了很多对'type:DT_VARIANT'的引用
我的python代码使用tensorflow tf-nightly 1.5x build。我也用tf1.4库试过这个。在Java中,我使用的是libtensorflow-1.5.0-rc0.jar。我还尝试使用libtensorflow-1.4.0.jar和libtensorflow-1.3.0.jar jar文件加载模型失败。
当我在github中查看tensorflow / tensorflow / core / framework / types.proto的历史时,我注意到分别在2017年7月和2017年10月添加了DT_VARIANT和uint32 / uint64,所以也许这就是为什么jar文件不是能够识别它们。我检查过tensorflow / tensorflow / java / src /并没有注意到对这些类型的任何引用。所以也许这就是问题所在。
对不起,如果我遗漏了一些明显的东西,我试着四处寻找答案。有没有人有任何建议我可以尝试解决这个问题?