首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在从keras导出的java中加载tensorflow .pb模型

如何在从keras导出的java中加载tensorflow .pb模型
EN

Stack Overflow用户
提问于 2019-07-02 20:57:27
回答 2查看 2.3K关注 0票数 2

我试图在Java中加载一个模型,该模型最初保存在java中的keras中,这样我就可以在运行在Java中的现有生产系统中进行进程中的推断。

我没有看到在Java中轻松加载Keras h5模型的方法,所以我首先尝试使用simple_save将其转换为.pb文件,然后使用simple_save的默认标记加载它。我尝试使用freeze_session例程和tf.train.write_graph直接保存图形,但也有相同的错误。

下面是将我的模型保存到.pb文件的代码

代码语言:javascript
运行
复制
# my model has two input tensors and one output tensor
inputs = {'input_1': model.inputs[0], 'input_2' : model.inputs[1]}
outputs = {'output_1' : model.outputs[0]}

tf.saved_model.simple_save(K.get_session(), 'output_dir', inputs=inputs, outputs=outputs)

下面是用于加载模型的Java代码,使用saved_model的默认标记:

代码语言:javascript
运行
复制
SavedModelBundle model = SavedModelBundle.load("output_dir", "serve");

这将导致错误:

线程“主”org.tensorflow.TensorFlowException:中的异常无法在提供的导出目录路径: output_dir中找到SavedModel .pb或.pbtxt

知道我做错了什么吗?我知道simple_save是不受欢迎的,但我只是想让任何事情都能在这一点上发挥作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-11 15:08:48

我查看了加载模型的本机源代码,结果发现有一个硬编码的文件名"saved_model.pb",或者它在目录中所期望的文本版本"saved_model.pbtxt“(在我看过的文档中没有指定)。

票数 1
EN

Stack Overflow用户

发布于 2020-06-16 22:01:51

现在,您可以使用(DJL)在Java中加载Keras模型并运行推理。DJL内部使用tensorflow java,并提供高级API,使其易于运行、推理和训练。查看github:https://github.com/awslabs/djl

有一个博客:https://towardsdatascience.com/detecting-pneumonia-from-chest-x-ray-images-e02bcf705dd6

并且可以找到演示项目:https://github.com/aws-samples/djl-demo/blob/master/pneumonia-detection/README.md

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56859956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档