我尝试使用训练好的tensorflow 模型在Java中进行对象检测。我用脚本export_inference_graph导出了模型(用Python训练过)。这生成了一个frozen_inference_graph.pb文件和一个saved_model.pb文件。
我的理解是,在Java中使用这个模型的最好方法是使用SavedModelBundle.load()加载模型。但是,当我尝试使用saved_model.pb文件加载模型时,我得到了错误SavedModel not found in export directory:
。有没有更好的方法在Java中加载模型以进行对象检测?
如果你有什么建议,请告诉我!我怀疑我在这个过程中做错了什么。
2条答案
按热度按时间6mzjoqzu1#
SavedModel格式将所有模型信息编码在一个目录中,而不是一个文件中。因此,您需要向
SavedModelBundle.load()
提供包含saved_model.pb
文件的目录,而不是文件本身。您可能会发现official sample也很有启发性。
希望能有所帮助。
ffscu2ro2#
我已经为此写了一个库。如果你想的话,你可以看看:JavaTF
您可以拥有一个包含多个saved_models的模型目录,并使用ModelLoader管理它们。
如果有帮助,请告诉我:)