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的*args和**kwargs用法
Nov 01 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
django 将model转换为字典的方法示例
Oct 16 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
python获取点击的坐标画图形的方法
Jul 09 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Python爬虫实例——爬取美团美食数据
Jul 15 Python
python快速安装OpenCV的步骤记录
Feb 22 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带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
Yii框架登录流程分析
2014/12/03 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
python实现操作文件(文件夹)
2019/10/31 Python
详解python 中in 的 用法
2019/12/12 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
django orm模块中的 is_delete用法
2020/05/20 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
食品销售计划书
2014/04/26 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
七年级作文之冬景
2019/11/07 职场文书
使用pytorch实现线性回归
2021/04/11 Python
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL