我正在使用Tensorflow Java Api将已创建的Tensorflow模型加载到JVM中。 我用这作为一个例子:tensorflow/examples/LabelImage.java什么是Python中的Tensorflow Java Api toGraphDef`相当于什么?
这里是我的简单的Scala代码:
import java.nio.file.{Files, Path, Paths}
import org.tensorflow.{Graph, Session, Tensor}
def readAllBytesOrExit(path: Path): Array[Byte] = Files.readAllBytes(path)
val graphDef = readAllBytesOrExit(Paths.get("PATH_TO_A_SINGLE_FILE_DESCRIBING_TF_MODEL.pb"))
val g = new Graph()
g.importGraphDef(graphDef)
val session = new Session(g)
val result: Tensor = session.runner().feed("input", image).fetch("output").run().get(0))
我如何保存我的模型来获得Session和存储在同一个文件中的图表。如上面“PATH_TO_A_SINGLE_FILE_DESCRIBING_TF_MODEL.pb”中所述。
描述here它提到:
曲线图的序列化表示,通常被称为一个 GraphDef,可以通过toGraphDef生成()并且在其它 语言API当量。
其他语言API中的等价物是什么?我没有发现它明显
注意:我已经看过tensorflow_serving下的mnist_saved_model.py,但通过该过程保存给我一个.pb
文件和一个variables
文件夹。当我试图加载.pb
文件时,我得到:java.lang.IllegalArgumentException: Invalid GraphDef
我试图使用https://www.tensorflow.org/api_docs/python/tf/GraphDef#SerializeToString,这有意义将图加载到会话中,但运行会话时变量不在那里。 –