java加载tensorflow训练的PB模型记录

  • python训练
    • 1. 模型的输入输出定义
    • 2. 训练时保存模型的方法
  • java加载模型
    • 1.maven依赖
    • 2. Java代码实例
    • tensor注意事项:

本文主要介绍了以java方式部署模型的方法,在另一篇文章中介绍了如何用docker部署tf_serving模型:【Docker部署TF_serving模型记录】

python训练

1. 模型的输入输出定义

# 输入:
query_holder = tf.placeholder(tf.int32,[None,None],name='input_query')
dropout = tf.placeholder(tf.int32,name='dropout_keep_prob')#输出概率
probs = tf.nn.softmax(self.query_logits, axis=1, name="query_probs")

2. 训练时保存模型的方法

builder = tf.saved_model.builder.SavedModelBuilder(save_model_path)
builder.add_meta_graph_and_variables(session, ["model_tag"])
builder.save()

java加载模型

1.maven依赖

(注意和训练模型的TF版本一致!否则可能会报错)

<dependencies><dependency><groupId>org.tensorflow</groupId><artifactId>libtensorflow</artifactId><version>1.10.0</version></dependency><dependency><groupId>org.tensorflow</groupId><artifactId>proto</artifactId><version>1.10.0</version></dependency><dependency><groupId>org.tensorflow</groupId><artifactId>libtensorflow_jni</artifactId><version>1.10.0</version></dependency>
</dependencies>

2. Java代码实例

import org.tensorflow.*;public class IntentPredict {public static void main(String[] args) {// 加载模型SavedModelBundle model = SavedModelBundle.load("/Users/project/query_NLU/saved_model/","model_tag");Session tfSession = model.session();// 定义输出Operation operationPredict = model.graph().operation("query_probs");Output output = new Output(operationPredict, 0);// 输入query、dropoutint input [][] =new int[1][16];input[0][0]=15;float dropout = (float) 1.0;//输入转tensorTensor input_tensor = Tensor.create(input);Tensor dropout_tensor = Tensor.create(dropout);//feed数据,得到结果Tensor probs = tfSession.runner().feed("input_query",input_tensor).feed("dropout_keep_prob",dropout_tensor).fetch(output).run().get(0);//输入input_tensor.close(); //一定要记得close!dropout_tensor.close();System.out.println(probs);}
}

tensor注意事项:

WARNING: Resources consumed by the Tensor object must be explicitly freed by invoking the close() method when the object is no longer needed. For example, using a try-with-resources block:

try (Tensor t = Tensor.create(...)) {doSomethingWith(t);}//建议用这种方式声明tensor

java加载tensorflow训练的PB模型记录相关推荐

  1. Java加载sklearn训练好的模型进行预测(无法搞定)

    参考文献主要是[1][2] [2]中代码各种类函数都是自定义的,放弃吧 转攻向[1] --------------------------------------------------------- ...

  2. tensorflow加载预训练好的模型图(.pb文件)

    千万不要试图在jupyter notebook中打开.pb模型文件,否则你会得到: 这时候我以为shi编码的问题,开始转换编码,转换完成后发现shi乱ma. 后来网上查了,.pb文件里面存储的shi模 ...

  3. 保存与加载Keras训练好的模型

    简介 可以在训练过程中和训练完成后保存模型,这样就可以很方便地恢复和重用模型,节省模型训练时间. 这样也便于别人使用你的模型,一般有两种方式共享模型: 创建模型的源码 训练好的模型(包括权重.参数等) ...

  4. 如何用java语言调用tensorflow训练好的模型

    1.TensorFlow的训练模型在Android和Java的应用及调用 2.tensorflow的python离线训练java在线预测方案 3.tensorflow训练的模型在java中的使用 4. ...

  5. OpenCvSharp (C# OpenCV) DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别、骰子识别、菜品识别)(附源码)

    本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别.骰子识别.菜品识别)! 前言: 下 ...

  6. 【Tensorflow 2.0 正式版教程】ImageNet(二)模型加载与训练

    前面的教程都只在小模型.小数据库上进行了演示,这次来真正实战一个大型数据库ImageNet.教程会分为三部分:数据增强.模型加载与训练.模型测试,最终在ResNet50上可以达到77.72%的top- ...

  7. Java / Tensorflow - API 调用 pb 模型使用 GPU 推理

    目录 一.引言 二.Java / Tensorflow 代码配置 1.代码配置 2.Maven 配置 三.环境检测 1.显卡检测 2.显卡监控 四.推理踩坑 1.异常现象 2.异常日志 五.安装 cu ...

  8. java加载pmml模型文件报错_PMML总结与思考PMML模型生成和加载示例

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  9. Tensorflow基于pb模型进行预训练(pb模型转CKPT模型)

    Tensorflow基于pb模型进行预训练(pb模型转CKPT模型) 在网上看到很多教程都是tensorflow基于pb模型进行推理,而不是进行预训练.最近在在做项目的过程中发现之前的大哥只有一个pb ...

最新文章

  1. 2022-2028年中国胶片手套行业市场研究及前瞻分析报告
  2. Xcode 4.4 的新特性 | LLVM 4.0 的新语法
  3. 一个IP绑定多个域名(虚拟主机)设置方法
  4. python怎么把数据写进txt_python 如何将数据写入本地txt文本文件的实现方法
  5. docker集群运行在calico网络上
  6. C和C++的互相调用【原创】
  7. mysql外键约束脚本_使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)...
  8. Linux这么多命令怎么记住?
  9. 【Oracle】闪回表
  10. php代码连接mysql数据库,php连接mysql数据库代码
  11. java 1.8 内存告警问题
  12. Study 3 —— Python运算符
  13. JMDM 楼宇电梯智能实时监控系统解决方案
  14. 【模式识别】信号检测实验及MATLAB仿真
  15. Python数据分析----Python3操作Excel-以豆瓣图书Top250为例
  16. 保险核保、理赔|门诊住院发票识别||医疗单据医疗票据识别技术
  17. JS每晚24:00更新某方法
  18. 设计模式学习笔记-2 创建者模式-工厂方法模式
  19. 36氪2022年Q3总收入同比增长两位数超预期,连续第四个季度盈利,广告收入同比增长20%
  20. Shaolin(map+iterator) HDU - 4585

热门文章

  1. 维修销售条码打印机斑马ZebraZT620
  2. 面试了10几家软件公司测试岗位,做的面试题大盘点,重点大合集
  3. 【PTA】名人堂与代金券
  4. oracle创建本地表空间,本地管理表空间——大家继续讨论!
  5. 程序员必备网站Collection~
  6. python自动生成字幕_自动生成字幕软件?
  7. 计量经济学:异方差性
  8. c#提取word文档中的图片
  9. 基于奇异值分解的图像压缩matlab
  10. mac时间机器的使用