博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ckpt convert to pb
阅读量:4952 次
发布时间:2019-06-11

本文共 1742 字,大约阅读时间需要 5 分钟。

import tensorflow as tf
#from create_tf_record import *
from tensorflow.python.framework import graph_util
def freeze_graph(input_checkpoint,output_graph):
  '''
  :param input_checkpoint:
  :param output_graph: PB模型保存路径
  :return:
  '''
  # checkpoint = tf.train.get_checkpoint_state(model_folder) #检查目录下ckpt文件状态是否可用
  # input_checkpoint = checkpoint.model_checkpoint_path #得ckpt文件路径
   
  # 指定输出的节点名称,该节点名称必须是原模型中存在的节点
  #output_node_names = "InceptionV1/Logits/Predictions/Reshape_1"
  #output_node_names = "resnet_v1_101/rpn_conv/3x3/weights/Momentum"
  output_node_names = "resnet_v1_101/bbox_pred/weights"
  #trainable_scopes = 'InceptionResnetV2/Logits,InceptionResnetV2/AuxLogits'
  
  saver = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=True)
  graph = tf.get_default_graph() # 获得默认的图
  input_graph_def = graph.as_graph_def() # 返回一个序列化的图代表当前的图
 
  with tf.Session() as sess:
    saver.restore(sess, input_checkpoint) #恢复图并得到数据
    output_graph_def = graph_util.convert_variables_to_constants( # 模型持久化,将变量值固定
      sess=sess,
      input_graph_def=input_graph_def,# 等于:sess.graph_def
      output_node_names=output_node_names.split(","))# 如果有多个输出节点,以逗号隔开
 
    with tf.gfile.GFile(output_graph, "wb") as f: #保存模型
      f.write(output_graph_def.SerializeToString()) #序列化输出
    print("%d ops in the final graph." % len(output_graph_def.node)) #得到当前图有几个操作节点
 
#input_checkpoint='inceptionv1/model.ckpt-0'
input_checkpoint = "output/res101/voc_2007_trainval+voc_2012_trainval/default/res101_faster_rcnn_iter_110000.ckpt"
#out_pb_path='inceptionv1/frozen_model.pb'
out_pb_path = "output/pb_model/frozen_model_110000_Variable.pb"
freeze_graph(input_checkpoint, out_pb_path)

转载于:https://www.cnblogs.com/herd/p/10875562.html

你可能感兴趣的文章
用模板写快速排序-数组
查看>>
Rock Paper Azure Challenge春季比赛来了!
查看>>
VC++获取DNS服务器地址
查看>>
[LeetCode] Length of Last Word
查看>>
MySQL数值类型
查看>>
SQL Server-聚焦INNER JOIN AND IN性能分析(十四)
查看>>
SQL索引优化
查看>>
bzoj 3192 删除物品
查看>>
【Foreign】Research Rover [DP]
查看>>
Daily Shell(3)
查看>>
微信之初学者:变量的终极奥义
查看>>
工作__问题
查看>>
选择题
查看>>
机器学习入门
查看>>
iPhone SDK开发基础之使用UITabBarController组织和管理UIView
查看>>
谈谈前端中的浮动,绝对定位,相对定位
查看>>
爬虫之初识爬虫
查看>>
1000.黑客和渗透测试学习
查看>>
CodeForces - 552E Vanya and Brackets —— 加与乘运算的组合
查看>>
【PAT】B1059 C语言竞赛(20 分)
查看>>