java加载tensorflow训练的PB模型记录
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模型记录相关推荐
- Java加载sklearn训练好的模型进行预测(无法搞定)
参考文献主要是[1][2] [2]中代码各种类函数都是自定义的,放弃吧 转攻向[1] --------------------------------------------------------- ...
- tensorflow加载预训练好的模型图(.pb文件)
千万不要试图在jupyter notebook中打开.pb模型文件,否则你会得到: 这时候我以为shi编码的问题,开始转换编码,转换完成后发现shi乱ma. 后来网上查了,.pb文件里面存储的shi模 ...
- 保存与加载Keras训练好的模型
简介 可以在训练过程中和训练完成后保存模型,这样就可以很方便地恢复和重用模型,节省模型训练时间. 这样也便于别人使用你的模型,一般有两种方式共享模型: 创建模型的源码 训练好的模型(包括权重.参数等) ...
- 如何用java语言调用tensorflow训练好的模型
1.TensorFlow的训练模型在Android和Java的应用及调用 2.tensorflow的python离线训练java在线预测方案 3.tensorflow训练的模型在java中的使用 4. ...
- OpenCvSharp (C# OpenCV) DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别、骰子识别、菜品识别)(附源码)
本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别.骰子识别.菜品识别)! 前言: 下 ...
- 【Tensorflow 2.0 正式版教程】ImageNet(二)模型加载与训练
前面的教程都只在小模型.小数据库上进行了演示,这次来真正实战一个大型数据库ImageNet.教程会分为三部分:数据增强.模型加载与训练.模型测试,最终在ResNet50上可以达到77.72%的top- ...
- Java / Tensorflow - API 调用 pb 模型使用 GPU 推理
目录 一.引言 二.Java / Tensorflow 代码配置 1.代码配置 2.Maven 配置 三.环境检测 1.显卡检测 2.显卡监控 四.推理踩坑 1.异常现象 2.异常日志 五.安装 cu ...
- java加载pmml模型文件报错_PMML总结与思考PMML模型生成和加载示例
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- Tensorflow基于pb模型进行预训练(pb模型转CKPT模型)
Tensorflow基于pb模型进行预训练(pb模型转CKPT模型) 在网上看到很多教程都是tensorflow基于pb模型进行推理,而不是进行预训练.最近在在做项目的过程中发现之前的大哥只有一个pb ...
最新文章
- 2022-2028年中国胶片手套行业市场研究及前瞻分析报告
- Xcode 4.4 的新特性 | LLVM 4.0 的新语法
- 一个IP绑定多个域名(虚拟主机)设置方法
- python怎么把数据写进txt_python 如何将数据写入本地txt文本文件的实现方法
- docker集群运行在calico网络上
- C和C++的互相调用【原创】
- mysql外键约束脚本_使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)...
- Linux这么多命令怎么记住?
- 【Oracle】闪回表
- php代码连接mysql数据库,php连接mysql数据库代码
- java 1.8 内存告警问题
- Study 3 —— Python运算符
- JMDM 楼宇电梯智能实时监控系统解决方案
- 【模式识别】信号检测实验及MATLAB仿真
- Python数据分析----Python3操作Excel-以豆瓣图书Top250为例
- 保险核保、理赔|门诊住院发票识别||医疗单据医疗票据识别技术
- JS每晚24:00更新某方法
- 设计模式学习笔记-2 创建者模式-工厂方法模式
- 36氪2022年Q3总收入同比增长两位数超预期,连续第四个季度盈利,广告收入同比增长20%
- Shaolin(map+iterator) HDU - 4585