【发布时间】:2018-01-26 13:19:52
【问题描述】:
我的用例: 我正在尝试使用 libtensorflow_jni 在我们现有的 JVM 服务中提供由 python 训练的模型。
现在我可以使用SavedModelBundle.load() 加载模型。但我发现很难将请求输入模型。因为我的用户请求不仅仅是一个标量矩阵,而是一个特征图,比如:
{'gender':1, 'age': 20, 'country': 100, other features ...}
通过搜索张量流教程,我发现Example 协议缓冲区可能适合这里,因为它基本上包含功能列表。但我不确定如何将其转换为 Java Tensor 对象。
如果我直接使用序列化的示例对象创建张量,TensorFlow 运行时似乎对数据类型不满意。例如,我做以下,
Tensor inputTensor = Tensor.create(example.toByteArray());
s.runner().feed(inputTensorName, inputTensor).fetch(outputTensorName).run().get(0);
我会得到一个 IllegalArgumentException:
java.lang.IllegalArgumentException: Expected serialized to be a vector, got shape: []
如果你碰巧知道或有相同的用例,你们能否阐明我如何从这里继续前进?
谢谢!
【问题讨论】:
标签: java tensorflow tensorflow-serving