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中常用的各种数据库操作模块和连接实例
May 29 Python
python将文本转换成图片输出的方法
Apr 28 Python
Python对列表排序的方法实例分析
May 16 Python
Python字符串拼接六种方法介绍
Dec 18 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
python视频按帧截取图片工具
Jul 23 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python 读取位于包中的数据文件
Aug 07 Python
如何将json数据转换为python数据
Sep 04 Python
基于Python正确读取资源文件
Sep 14 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中比较时间大小实例
2014/08/21 PHP
PHP闭包实例解析
2014/09/08 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
vue实现页面加载动画效果
2017/09/19 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
Python切片工具pillow用法示例
2018/03/30 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
高中校园广播稿
2014/01/11 职场文书
小学英语教学反思
2014/01/30 职场文书
地理教师岗位职责
2014/03/16 职场文书
土地转让协议书范本
2014/04/15 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
机动车登记业务委托书
2014/10/08 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript