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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python实现二叉搜索树
Feb 03 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
python中使用%与.format格式化文本方法解析
Dec 27 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
Numpy的简单用法小结
Aug 28 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
numpy的Fancy Indexing和array比较详解
Jun 11 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
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php session 预定义数组
2009/03/16 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
对python中的argv和argc使用详解
2018/12/15 Python
python os.fork() 循环输出方法
2019/08/08 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python如何进行时间处理
2020/08/06 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
pandas实现导出数据的四种方式
2020/12/13 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
外贸业务员工作职责
2014/01/06 职场文书
个人现实表现材料
2014/02/04 职场文书
善意的谎言事例
2014/02/15 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
政风行风评议心得体会
2014/10/21 职场文书
家长通知书家长意见
2014/12/30 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫