Tensorflow学习笔记(五)模型的保存与加载(四)

本文介绍如何使用TensorFlow的freeze_graph工具将已有的模型文件(包括SavedModel和.meta文件)转换成单一的.pb文件,便于在不同平台如Android上调用。通过详细步骤指导,使复杂的模型易于移植。

将模型文件合并为一个.pb文件

声明: 参考链接这里
之前Tensorflow学习笔记(二)模型的保存与加载(一 )Tensorflow学习笔记(三)模型的保存与加载(二)的保存方法保存的模型文件的模型框架图和权重都是分开的,有时候我们希望他们能够合并在一起方便在其他地方调用比如安卓端。

虽然Tensorflow学习笔记(四)模型的保存与加载(三)中的保存方法可以生成一个可供Android端调用的.pb模型,但是有时候我们已经用其他两种方法训练好了如果模型很复杂在训练一次可能花费时间很多代价太大,或者是拿到别人的模型想在Android端调用怎么办呢?

这就要用到今天的“神器”freeze_graph跟之前的saved_model_cli.py文件一样。freeze_graph.py是Tensorflow官方已经为我们准备好的一个脚本,同样在./tensorflow/python/tools/目录下在这里插入图片描述

SavedModel模型合成.pb文件

首先Win+R 输入cmd+回车 打开控制台,指定路径到生成的模型文件下,如
在这里插入图片描述
在这里插入图片描述
然后输入

freeze_graph --input_saved_model_dir=./ --output_node_names=output --output_graph=new_model.pb

--input_saved_model_dir=./是SavedModel模型的路径,这里因为已经指定到当前路径了所以直接=./
--output_node_names是输出节点的名字,有多个时用逗号分开。用于指定输出节点,将没有在输出线上的其它节点剔除。
--output_graph用来保存整合后的模型输出文件,也就是输出文件的名字。

回车,等待控制台出现如下
在这里插入图片描述
然后观察models文件夹中就会多出一个名为new_model.pb的文件

在这里插入图片描述

我们把这个new_model.pb直接放到上一篇Android DEMO的assets目录中,在更改下模型路径在这里插入图片描述

然后下载到手机上
在这里插入图片描述
OK! 完美运行!!

.meta模型合成.pb文件

跟上面步骤一样,Win+R 输入cmd+回车 打开控制台,指定路径到生成的模型文件下,如
在这里插入图片描述在这里插入图片描述
这一步输入的就不太一样了,如下

freeze_graph --input_meta_graph=my_model-0.meta --input_binary=true --input_checkpoint=my_model-0 --output_node_names=output --output_graph=./new_models.pb

--input_meta_graph是要加载的TensorFlow 'MetaGraphDef文件。
--input_binary配合input_graph用,为true时,input_graph为二进制,为false时,input_graph为文件。默认False注意这里一定要填True
--input_checkpoint检查点数据文件。训练时,给Saver用于保存权重、偏置等变量值。这时用于模型恢复变量值。
--output_node_names是输出节点的名字,有多个时用逗号分开。用于指定输出节点,将没有在输出线上的其它节点剔除。
--output_graph用来保存整合后的模型输出文件,也就是输出文件的保存路径和名字。

然后等待输出:
在这里插入图片描述
在这里插入图片描述
然后同样把它放到Android的assets目录下,在更改模型路径,然后下载到手机上
在这里插入图片描述
在这里插入图片描述
仍然完美运行!!!
希望这篇文章对您有帮助,感谢阅读!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值