没有合适的资源?快使用搜索试试~ 我知道了~
在java中调用训练好的TensorFlow模型1
需积分: 0 17 下载量 2 浏览量
2022-08-04
15:57:24
上传
评论
收藏 414KB PDF 举报
温馨提示
试读
5页
在java中调用训练好的TensorFlow模型1
资源详情
资源评论
资源推荐
在java中调用训练好的TensorFlow模型
当我们训练好TensorFlow模型以后,我们往往都是需要投入实际使用的,在实际使用的
时候,我们不可能先训练,后处理,因为训练的代价实在是太大了。本文主要讲解如何
将训练好的tensorFlow模型保存成.pb格式的文档,并在java项目中运用。
保存模型
在java中调用
先来解决第一个问题,如何保存为pb格式,其实这是非常简单的,只需要3行代码即可。
builder = tf.saved_model.builder.SavedModelBuilder('./model2')
# SavedModelBuilder里面放的是你想要保存的路径,比如我的路径是根目录下的model2文件
builder.add_meta_graph_and_variables(session, ["mytag"])
#第二步必需要有,它是给你的模型贴上一个标签,这样再次调用的时候就可以根据标签来找。我给
它起的标签名是"mytag",你也可以起别的名字,不过你需要记住你起的名字是什么。
builder.save()
#第3步是保存操作
其实第一个问题还没有解决,如果你直接这样保存的话,你在调用的时候可能就找不到输入和输出
了。所以你需要在你的代码里给你的输入和输出变量起个名字,这样去java里面,你就可以根据这
个名字来获得你的输入输出变量。
如果你没有理解我这段话,你就看下面这个例子。
X_holder = tf.placeholder(tf.int32,[None,None],name='input_x') # 训练集
predict_Y = tf.nn.softmax(softmax_before,name='predict') # softmax() 计算
概率
#就拿我的案例来说,我的输入是一个二维矩阵,我给它起名为"input_x",这样到了java中我就
可以根据"input_x"来得到x_hodler
#同理,我的输出是一个softmax(),所以我给它起名为"predict"。
#其他变量我们是不用考虑的,因为我们训练模型的目的就是给输入,得到输出。
好了,现在第一个问题解决了。现在来解决如何在java中调用的问题。
1.先在maven的pom.xml中引入tensorflow的包。我的包是这样的
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow</artifactId>
<version>1.12.0</version>
</dependency>
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>proto</artifactId>
<version>1.12.0</version>
</dependency>
张景淇
- 粉丝: 39
- 资源: 277
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0