私の使用例: 私は、libtensorflow_jniを使用して既存のJVMサービス内でPythonによって訓練されたモデルを提供しようとしています。JavaのExampleオブジェクトからTensorを作成するにはどうすればよいですか?
SavedModelBundle.load()
を使用してモデルを読み込むことができました。しかし、私はその要求をモデルに与えるのが難しいと感じています。私のユーザーの要求は、単にスカラー行列が、のような機能のマップ、ないので:テンソルフローのチュートリアルを中心に検索することにより
{'gender':1, 'age': 20, 'country': 100, other features ...}
、私はそれが基本的にのリストを保持しているようExampleプロトコルバッファはここにフィットすることを確認します特徴。しかし、私はそれをJava Tensorオブジェクトに変換する方法がわかりません。
シリアル化されたExampleオブジェクトで直接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: []
あなたたちは、あなたが知っているか、同じ持って起こる場合には、私はここから前方に移動することができますどのようにいくつかの光を当てるでしたユースケース?
ありがとうございます!
ありがとう、これは素晴らしい作品です。 Btw、Tensorflowによって返されたTensorの文字列のベクトルをどのように読み取ることができるか知っていますか?たとえば、s.runner()。fetch(outputTensorName).run()。get(0)がStringのベクトルのTensorを返したとします。 Javaでは、Tensorから値を取得するためのAPIは表示されません。 – Alfred