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 相关文章推荐
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
python中的&&及||的实现示例
Aug 07 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
利用PyTorch实现VGG16教程
Jun 24 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python 忽略文件名编码的方法
Aug 01 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 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
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
JS功能代码集锦
2016/05/04 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python打开文件并获取文件相关属性的方法
2015/04/23 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
opencv+python实现均值滤波
2020/02/19 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
百度软件工程师职位
2013/02/14 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
道路施工安全责任书
2014/07/24 职场文书
调研座谈会发言材料
2014/08/23 职场文书
导游词之江西赣州
2019/10/15 职场文书
golang特有程序结构入门教程
2021/06/02 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
windows系统搭建WEB服务器详细教程
2022/08/05 Servers