tensorflow转换ckpt为savermodel模型的实现


Posted in Python onMay 25, 2020

ckpt转换成SavedModel

convert_ckpt_to_savermodel.py

import tensorflow as tf
import sys
 
trained_checkpoint_prefix = sys.argv[1]
export_dir = sys.argv[2]
graph = tf.Graph()
config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)
with tf.compat.v1.Session(graph=graph, config=config) as sess:
  # Restore from checkpoint
  loader = tf.compat.v1.train.import_meta_graph(trained_checkpoint_prefix + '.meta')
  loader.restore(sess, trained_checkpoint_prefix)
 
  # Export checkpoint to SavedModel
  builder = tf.compat.v1.saved_model.builder.SavedModelBuilder(export_dir)
  builder.add_meta_graph_and_variables(sess, [tf.saved_model.TRAINING, tf.saved_model.SERVING], strip_default_attrs=True)
  builder.save()

假设已经生成了ckpt模型

checkpoint hello_model.data-00000-of-00001 hello_model.index hello_model.meta

python ./convert_ckpt_to_savermodel.py hello_model ./save

会在save目录下生成

save
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index

补充知识:tensorflow serving模型转换

tf serving是一款灵活的高性能机器学习服务系统,专为生产环境而设计。通过它可以轻松部署新算法和实验,同时保持服务框架和API不变。它提供了与tensorflow模型的即是可用集成,但很容易扩展以便服务其他类型的模型和数据。

tf serving的安装过程这里不多说,大家可以百度。

此处主要介绍tensorflow模型在docker中转换时的修改内容。

修改inception_saved_model.py文件中的内容,主要包括:image_size,NUM_CLASSES,SYNSET_FILE,METADATA_FILE变量的内容,必要时修改model_version,NUM_TOP_CLASSES。

修改inception_model.py文件中的内容,包括从nets文件夹中导入所需网络的信息,修改inference函数中对应的网络名称。

from nets.inception_v1 import inception_v1, inception_v1_arg_scope

with slim.arg_scope(inception_v1_arg_scope()):
  logits, endpoints = inception_v1(
     images,
     dropout_keep_prob=0.8,
     num_classes=num_classes,
     is_training=for_training,
     scope=scope)

另,使用CUDA环境时,需要添加环境及bazel编译的配置项

export TF_NEED_CUDA=1
bazel build -c opt --config=cuda tf_models/slim:inception_saved_model

ps,关于gpu的设置如下:

export CUDA_VISIBLE_DEVICES='0,1'  #shell环境
 
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" #python环境

以上这篇tensorflow转换ckpt为savermodel模型的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python写的图片蜘蛛人代码
Aug 27 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
python正则表达式re模块详细介绍
May 29 Python
Python中的包和模块实例
Nov 22 Python
在Python中使用第三方模块的教程
Apr 27 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 Python
Python中asyncio模块的深入讲解
Jun 10 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
Django nginx配置实现过程详解
Sep 10 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
基于Python把网站域名解析成ip地址
May 25 #Python
使用keras和tensorflow保存为可部署的pb格式
May 25 #Python
Python使用configparser读取ini配置文件
May 25 #Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 #Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 #Python
keras模型保存为tensorflow的二进制模型方式
May 25 #Python
keras 如何保存最佳的训练模型
May 25 #Python
You might like
一个查看session内容的函数
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP中的事务使用实例
2015/05/26 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Python导入oracle数据的方法
2015/07/10 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
python 发送get请求接口详解
2020/11/17 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
高中生毕业学习总结的自我评价
2013/11/14 职场文书
三万活动总结
2014/04/28 职场文书
治安消防安全责任书
2014/07/23 职场文书
七一建党日演讲稿
2014/09/05 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL