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 NumPy库安装使用笔记
May 18 Python
python处理大数字的方法
May 27 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
剖析Python的Twisted框架的核心特性
May 25 Python
简单谈谈python中的多进程
Nov 06 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
Python断言assert的用法代码解析
Feb 03 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
python实现快递价格查询系统
Mar 03 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中截取字符串支持utf-8
2007/01/18 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
使用Python开发windows GUI程序入门实例
2014/10/23 Python
Python 26进制计算实现方法
2015/05/28 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
python语言元素知识点详解
2019/05/15 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
String这个类型的class为何定义成final?
2012/11/13 面试题
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
大学生个人简历自我评价
2013/11/16 职场文书
审计主管岗位职责
2014/01/31 职场文书
农贸市场管理制度
2014/01/31 职场文书
建筑工地标语
2014/06/18 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
讲文明倡议书
2015/04/29 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android