tersorflow模型 java_Tensorflow模型导入Java

Java importGraphDef()函数只导入计算图(由Python代码中的tf.train.write_graph编写),它不加载训练变量的值(存储在检查点中),这就是为什么你会得到一个错误抱怨未初始化的变量.

另一方面,TensorFlow SavedModel format包含有关模型(图形,检查点状态,其他元数据)的所有信息,并且在Java中使用,您希望使用SavedModelBundle.load来创建使用训练变量值初始化的会话.

在您的情况下,这应该类似于Python中的以下内容:

def save_model(session, input_tensor, output_tensor):

signature = tf.saved_model.signature_def_utils.build_signature_def(

inputs = {'input': tf.saved_model.utils.build_tensor_info(input_tensor)},

outputs = {'output': tf.saved_model.utils.build_tensor_info(output_tensor)},

)

b = saved_model_builder.SavedModelBuilder('/tmp/model')

b.add_meta_graph_and_variables(session,

[tf.saved_model.tag_constants.SERVING],

signature_def_map={tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature})

b.save()

并通过save_model调用它(session,x,yhat)

然后在Java中加载模型使用:

try (SavedModelBundle b = SavedModelBundle.load("/tmp/mymodel", "serve")) {

// b.session().run(...)

}

希望有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值