我正在使用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,這有意義將圖加載到會話中,但運行會話時變量不在那裏。 –