java调用tensorflow模型文件

Java调用Tensorflow训练模型预测结果 Java调用Tensorflow训练好的模型做预测,首先需要读取词典,然后加载模型,读入数据,最后预测结果。 读取词典文件 这个词典文件wordIndexMap.txt,就是上一篇对应训练模型之前生成的词典文件。每行一个词和词的编号。 // 从文件读取词典文件存入Map private static Map<String, Integer> readVocabFromFile(Str... 阅读详情

需要用到tensorflow官方提供的java api,maven依赖如下:

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

这里使用的是pb格式的模型文件,该模型文件的生成请参考:模型文件保存

测试代码:

import org.tensorflow.*;

import java.util.List;

/**
 * Created by ling913.
 */
public class Test {
    public static void main(String[] args) {
        SavedModelBundle b = SavedModelBundle.load("./src/main/resources/model2", "mytag");
        Session tfSession = b.session();
        Operation operationPredict = b.graph().operation("predict");   //要执行的op
        Output output = new Output(operationPredict, 0);
        //构造测试数据,用的是mnist测试集的第15个, mnist.test.images[15],label是数字5
        float[][] a = new float[1][784];
        a[0] = new float[]{0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.2f,0.517647f,0.839216f,0.992157f,0.996078f,0.992157f,0.796079f,0.635294f,0.160784f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.4f,0.556863f,0.796079f,0.796079f,0.992157f,0.988235f,0.992157f,0.988235f,0.592157f,0.27451f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.996078f,0.992157f,0.956863f,0.796079f,0.556863f,0.4f,0.321569f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.67451f,0.988235f,0.796079f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0823529f,0.87451f,0.917647f,0.117647f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.478431f,0.992157f,0.196078f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.482353f,0.996078f,0.356863f,0.2f,0.2f,0.2f,0.0392157f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0823529f,0.87451f,0.992157f,0.988235f,0.992157f,0.988235f,0.992157f,0.67451f,0.321569f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0823529f,0.839216f,0.992157f,0.796079f,0.635294f,0.4f,0.4f,0.796079f,0.87451f,0.996078f,0.992157f,0.2f,0.0392157f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.239216f,0.992157f,0.670588f,0f,0f,0f,0f,0f,0.0784314f,0.439216f,0.752941f,0.992157f,0.831373f,0.160784f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.4f,0.796079f,0.917647f,0.2f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0784314f,0.835294f,0.909804f,0.321569f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.243137f,0.796079f,0.917647f,0.439216f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0784314f,0.835294f,0.988235f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.6f,0.992157f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.160784f,0.913726f,0.831373f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.443137f,0.360784f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.121569f,0.678431f,0.956863f,0.156863f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.321569f,0.992157f,0.592157f,0f,0f,0f,0f,0f,0f,0.0823529f,0.4f,0.4f,0.717647f,0.913726f,0.831373f,0.317647f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.321569f,1.0f,0.992157f,0.917647f,0.596078f,0.6f,0.756863f,0.678431f,0.992157f,0.996078f,0.992157f,0.996078f,0.835294f,0.556863f,0.0784314f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.278431f,0.592157f,0.592157f,0.909804f,0.992157f,0.831373f,0.752941f,0.592157f,0.513726f,0.196078f,0.196078f,0.0392157f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0.0f};
        Tensor input_x = Tensor.create(a);
        List<Tensor> out = tfSession.runner().feed("input_x", input_x).fetch(output).run();
        for (Tensor s : out) {
            float[][] t = new float[1][10];
            s.copyTo(t);
            for (float i : t[0])
                System.out.println(i);
        }
    }
}

输出:

2.5921327E-4
1.7069127E-5
1.0343825E-4
0.015574839
2.9570143E-5
0.9706799
7.140153E-6
7.191204E-5
0.013250019
6.8286636E-6
第6个值最大,说明是数字5
TensorFlow Java 入门介绍 TensorFlow 是一个广泛使用的开源机器学习框架,具有强大的功能和灵活性。虽然TensorFlow主要使用Python进行开发,但它也提供了Java API,使得Java开发者可以在其应用中使用TensorFlow的强大功能进行模型推理(inference)。以下是TensorFlow Java的入门介绍,包括安装、基本用法和一个简单的示例。 阅读详情

相关推荐

Tensorflow for Java + Spark-Scala分布式机器学习计算框架的应用实践

import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense,Dropout,Convolution2D,MaxPooling2D,Flatten from tensorflow.keras.optimizers import Adam def train_model(): 载入训练集和测试集数据,进行独热编码 mnist = tf.keras.

m0_54852680的博客 1863

Java 使用TensorFlow基础

Java 使用 TensorFlow 基础教程 流程图 #render_6_2266384594-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#render_6_2266384594-svg .error...

weixin_28931449的博客 824

在Java语言中载入Tensorflow模型并进行预测计算

目前,Tensorflow的Java版本支持Windows、Mac OS、Linux、Android这几个操作系统。本次主要以Windows操作系统为列来介绍。** 在Windows操作系统中,如果要在Java语言中调用TensorFlow的模型,需要到TensorFlow官网的安装页面中下载一个TensorFlow的工具类包libtensorflow-1.5.0.jar,还有一个包含JNI接口的...

RorZoro的博客 2015

Java 版 TensorFlow

TensorFlow 提供了一个Java API,该 API 特别适合加载用 Python 创建的模型并在 Java 应用中运行这些模型。 JAVA API 参考文档: https://tensorflow.google.cn/api_docs/java/reference/org/tensorflow/package-summary 注意:TensorFlow Java API 不在 T...

mandagod的博客 1万+

模型利用在java里_tensorflow训练的模型在java中的使用

tensorflow训练模型通常使用python api编写,简单记录下这些模型保存后怎么在java中调用。python中训练完成,模型保存使用如下api保存:#保存二进制模型output_graph_def=tf.graph_util.convert_variables_to_constants(sess,sess.graph_def,output_node_names=['y_con...

weixin_39624094的博客 522

Tensorflow车牌识别(含完整源代码及训练集)

TensorFlow是一个开放源代码软件库,用于进行高性能数值计算。借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)。TensorFlow 是一个用于研究和生产的开放源代码机器学习库。TensorFlow 提供了各种 API,可供初学者和专家在桌面、移动、网络和云端环境下进行开发。

斌擎科技 2953

keras2tensorflow

keras模型文件转化为tensorflow的pb文件,然后java调用 from keras.models import load_model from keras import backend as K from keras.models import model_from_config import tensorflow as tf model = load_model('mode...

fkyyly的专栏 509

09、Flutter FFI Dart Native API

本文介绍了 Dart Native API 的基本用法,解决了 Dart 与 C 异步通讯的问题

eieihihi的专栏 4395

tensorflow能用java吗_java 操作 TensorFlow 合适吗

展开全部tensorflow训练模型通常使用Pythonapi编写,这些模型保存后可32313133353236313431303231363533e78988e69d8331333363373737以在Java中调用。python中训练完成,模型保存使用如下api保存:#保存二进制模型output_graph_def=tf.graph_util.convert_variables_to_...

weixin_32521745的博客 902

ZXDoc工业级CAN总线仿真工具全解析与应用实践

CAN总线作为现代工业通信的核心协议,其仿真技术是汽车电子和工业控制领域的关键支撑。通过物理层信号模拟、协议层报文解析和应用层人机交互的三维仿真,开发者能够构建完整的硬件在环测试环境。ZXDoc作为工业级仿真工具,集成了DBC工程化管理、HMI面板设计和自动化测试脚本等核心功能,特别适用于ECU开发、产线验证等场景。工具支持ISO11898标准协议,提供错误帧注入、负载压力测试等高级特性,结合Python API可实现复杂测试用例的自动化执行。在新能源车VCU测试等实践中,通过优化采样点等参数配置,显著提升

weixin_30096975的博客 469

【详细图文】使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集

使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集,以及MobaXterm使用介绍和linux基础命令介绍。

qq_62844901的博客 3381

Java调用在python中完成训练的tensorflow模型

众所周知,tensorflow是Google开源的一个深度学习框架。虽然它除了python语言兼容,还提供了c和Java的API,但目前大部分人还是选择在python环境进行深度学习模型的搭建和训练,不过很多时候,我们需要将完成训练之后较为有效的模型进行封装和部署,但是像许多公司最后的部署都是用Java语言实现的,所以,此时我们就需要掌握如何通过Java来调用tensorflow的模型。 保存模型...

sgyuanshi的博客 4064

51单片机独立按键控制LED(二)

对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。独立按键控制LED显示二进制。独立按键控制LED灯亮灭。独立按键控制LED状态。独立按键控制LED移位。

m0_50562428的博客 5381

tensorflow训练的模型在java中的使用

tensorflow训练模型通常使用python api编写,简单记录下这些模型保存后怎么在java中调用。 python中训练完成,模型保存使用如下api保存: [python] view plain copy # 保存二进制模型   output_graph_def = tf.graph_util.convert_variables_to_c

qq_39830531的博客 4962

【LAMMPS学习】五、LAMMPS命令(8) Pair_style 势

所有LAMMPS pair_style命令如下表所示。有些样式有加速版本。这由括号中的附加字母表示:g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT。

荷塘阅色 3015

如何让 Mac mini 24小时不休眠运行 OpenClaw

如果 OpenClaw 每 5-10 分钟自动退出,launchd 连续 4 次快速重启后会判定为崩溃循环并卸载服务。:方案一(pmset)+ 方案三(launchd)组合使用,既防止系统休眠,又保证 OpenClaw 开机自启和崩溃自动恢复。:caffeinate 只在进程运行期间有效,终端关闭或进程结束后系统恢复正常睡眠策略。这条命令会自动创建 launchd plist 并启用服务,是最推荐的方式。替换为你的实际用户名路径,Node.js 路径也要改成你自己的。确保 plist 中有。

Maynor的博客 2190

java tf_java通过gRPC整合tensorflow serving(之三)——使用java调用tfserving的模型

java通过gRPC整合tensorflow serving(之三)——使用java调用tfserving的模型SORRY 本来打算上周末发的,一直有事拖延了一下。上一篇我们讲完了如何安装tensorflow serving,并讲了如何编写脚本导出一个训练好的checkpoint模型文件,最后将模型部署到了tensorflow serving。本篇我们继续讲述如何使用java调用刚刚部署好的模型。...

weixin_33504324的博客 1254

OPTEE常见13类问题与解答

OPTEE常见13类问题并解答

AI-安全-功耗 1202

Tensorflow Serving:Java调用saved_model.pb输出模型预测

有个离线跑批的任务需要调用tensorflow模型写入大数据集群(hive/kudu/impala之流),Python的操作包impyla存在bug,插入kudu极其缓慢几乎不能用,尝试使用Python完成tensorflow模型训练产出pb文件,使用Java完成整个跑批调用算法入库的过程。`saved_model.pb`是tensorflow的`冻结图`模型文件,是`跨语言`的,可以使用各种语言如Java,Python的tensorflow的包和API进行调用。

2401_85327249的博客 1084

【Codecs系列】HEVC-SCC(一):核心技术介绍

DATE: 2020.6.4【Tags: HEVC SCC】 1、参考网址 2、SCC简介 3、HEVC-SCC核心技术

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 4803

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

keras java 模型导出_Java调用Keras、Tensorflow模型

from __future__ import print_functionimport kerasfrom keras.datasets import mnistfrom keras.models import Sequentialfrom keras.layers import Dense, Dropout, Flattenfrom keras.layers import Conv2D, Max...

weixin_39564527的博客 345

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

tensorflow模型部署系列————嵌入式(c/c++ android)部署(附源码)

摘要 本文为系列博客tensorflow模型部署系列的一部分,用于实现通用模型的部署。本文主要实现用tflite接口调用tensorflow模型进行推理。相关源码见链接 引言 本文为系列博客tensorflow模型部署系列的一部分,用于tflite实现通用模型的部署。本文主要使用pb格式的模型文件,其它格式的模型文件请先进行格式转换,参考tensorflow模型部署系列————预训练模型导出。从...

gdyshi的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

tensorboard ckpt pb 模型的输出节点_tensorflow模型线上部署

这次写一个比较短的工程部署总结,说是tensorflow线上部署,并没有使用目前推荐的tensorflow serving。一则是该功能只是整个项目中的一个很小的功能点,如果单独为该功能部署tensorflow serving,成本和时间上会比较超标;二则由于公司内部网络环境限制,无法完整顺利获取tensorflow serving需要的依赖包(在没有网络环境下去装tensorflow servi...

weixin_39674293的博客 225

tensorflow机器学习模型的跨平台上线(java-api)

在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但是由于tensorflow模型往往较大,使用无法优化的PMML文件大多数时候很笨拙,因此本文我们专门讨论下tensorflow机器学习模型的跨平台上线的方法。 1.tensorflow模型的跨平台上线的备选方案     tensorflow模...

赶路人儿 589

java调用tensorflow

1.tensorflow官方java调用pb图像分类https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java1.生成pbhttp://blog.csdn.net/u014432647/article/details/75276718

hxshine的博客 1万+

java调用文本分类textrnn模型,勿踩坑

直接贴代码 # 将模型保存为可用于线上服务的文件(一个.pb文件,一个variables文件夹) # print('Exporting trained model to', save_dir) builder = tf.saved_model.builder.SavedModelBuilder(save_dir) # 服务器专用代码 classification_signature = ( ...

cuipanguo的博客 942
上一篇: TensorFlow 模型的保存与恢复
下一篇: merlin语音合成算法流程
ling913
博客等级 码龄15年 115粉丝 41原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值