温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

tensorflow如何实现ckpt转换为savermodel模型

发布时间:2020-07-22 11:18:26 来源:亿速云 阅读:293 作者:小猪 栏目:开发技术

这篇文章主要为大家展示了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模型的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI