繁体   English   中英

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

[英]How to convert checkpoint to .pb model for model deployment?

我已经在 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: Can't load save_path when it is None。

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

我是为NVIDIA/OpenSeq2Seq训练的模型做的,不知道你是不是这种情况。

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

基本上,我做的顺序是:

  1. 加载模型
  2. 调用 build_trt_forward_pass_graph (这是我让它工作的唯一方法)
  3. 获取正确的输出节点
  4. 修复批规范节点
  5. 冻结图形
  6. 保存

如果您有其他想法,请告诉我,如果您尝试了,请与我们分享结果。

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM