如何将检查点转换为.pb模型以进行模型部署?

时间:2019-04-09 07:11:58

标签: python tensorflow seq2seq

我已经在tensorflow上训练了seq2seq语言转换模型,并以检查点的形式保存了以下文件夹中的文件。

  • translate.ckpt-157450.data-00000-of-00001
  • translate.ckpt-157450.index
  • translate.ckpt-157450.meta和
  • 检查点文件

现在,我想将其转换为protobuf文件(.pb)以进行部署。这是我正在使用的一些代码:

import tensorflow as tf
meta_path = "/home/i9/L-T_Model_Training/01_Apr_model/train/translate.ckpt-157450.meta"
with tf.Session() as sess:
saver = tf.train.import_meta_graph(meta_path)
saver.restore(sess, tf.train.latest_checkpoint('.'))
output_node_names =[n.name for n in tf.get_default_graph().as_graph_def().node]
frozen_graph = tf.graph_util.convert_variables_to_constants(sess, sess_graph_def, output_node_names)
with open("output_graph.pb", "wb") as f:
    f.write(frozen_graph.SerializeToString())

我正在火车文件夹中运行此代码。 它显示了一个错误:ValueError:如果为None,则无法加载save_path。

我也尝试过Frozen_graph.py脚本,但无法获取模型。

1 个答案:

答案 0 :(得分:0)

我是为经过NVIDIA/OpenSeq2Seq训练的模型所做的,不知道这是否是您的情况。

我用相关代码创建了一个gist file

基本上,我执行的顺序是:

  1. 加载模型
  2. 致电build_trt_forward_pass_graph(这是我可以使其正常工作的唯一方法)
  3. 获取正确的输出节点
  4. 修复批处理规范节点
  5. 冻结图
  6. 保存

如果您有其他想法,请让我知道,如果尝试,请与我们分享结果。

致谢