tensorflow转换ckpt为savermodel模型的实现

 更新时间:2020年05月25日 10:07:51   作者:帅得不敢出门  
这篇文章主要介绍了tensorflow转换ckpt为savermodel模型的实现,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧

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源码分享

    这篇文章主要介绍了神经网络python源码分享,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Scrapy 之中间件(Middleware)的具体使用

    Scrapy 之中间件(Middleware)的具体使用

    本文主要介绍了Scrapy 之中间件(Middleware)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python lambda表达式用法实例分析

    Python lambda表达式用法实例分析

    这篇文章主要介绍了Python lambda表达式用法,结合实例形式分析了lambda表达式的具体功能、应用场景及相关使用技巧,需要的朋友可以参考下
    2018-12-12
  • 使用Python爬取Json数据的示例代码

    使用Python爬取Json数据的示例代码

    这篇文章主要介绍了使用Python爬取Json数据的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Python3去除头尾指定字符的函数strip()、lstrip()、rstrip()用法详解

    Python3去除头尾指定字符的函数strip()、lstrip()、rstrip()用法详解

    这篇文章主要介绍了Python3去除头尾指定字符的函数strip()、lstrip()、rstrip()用法详解,需要的朋友可以参考下
    2021-04-04
  • Python实现批量下载文件的示例代码

    Python实现批量下载文件的示例代码

    下载文件是我们在日常工作中常常要做的一件事情,当我们需要从互联网上批量下载大量文件时,手动一个一个去下载显然不够高效,所以本文为大家介绍一下如何利用python批量下载文件吧
    2023-11-11
  • Python中plt.scatter()函数的常见用法小结

    Python中plt.scatter()函数的常见用法小结

    这篇文章主要介绍了Python中plt.scatter()函数的常见用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Django分页器的用法你都了解吗

    Django分页器的用法你都了解吗

    在我们做Django项目,数据量比较大的时候,我们需要分页器来做分页显示,接下来重点给大家介绍利用Django开发MVT模型项目时分页器的使用,感兴趣的朋友一起看看吧
    2021-05-05
  • python实现盲盒抽奖功能(减库存)

    python实现盲盒抽奖功能(减库存)

    本文主要介绍了python实现盲盒抽奖功能,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 解决django后台样式丢失,css资源加载失败的问题

    解决django后台样式丢失,css资源加载失败的问题

    今天小编就为大家分享一篇解决django后台样式丢失,css资源加载失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论