【问题标题】:TensorFlow restore/deploy network without the model?没有模型的 TensorFlow 恢复/部署网络?
【发布时间】:2016-08-31 07:58:21
【问题描述】:

我已经使用 TensorFlow 构建和训练了一些网络,并成功地保存和恢复了模型的参数。

但是,对于某些情况 - 例如就像在客户的基础设施中部署训练有素的网络一样——它不是发布完整代码/模型的最佳解决方案。因此,我想知道是否有任何方法可以在没有用于训练的原始代码/模型的情况下恢复/运行经过训练的网络?

我想这会导致一个问题,除了变量的权重之外,TensorFlow 是否能够将网络架构的(压缩?)版本保存到检查点文件中。

这有可能吗?

【问题讨论】:

  • 您在寻找 TensorFlow Serving 吗?
  • 目前(例如,用于在机器人上测试模型,架构必须运行,因此代码已过时)我想知道是否有任何方法可以让我做某事像 saver.restore(sess, "some_checkpoint_file.ckpt")sess.run(...) 一样,而不必每次都复制整个代码库......
  • ...但从长远来看,是的:看起来 TensorFlow Serving 是我寻找的,用于稳定/长期环境。
  • 另外,一个轻量级的解决方案是freeze_graph,它将你的变量作为常量节点内嵌到graphdef中——github.com/tensorflow/tensorflow/blob/master/tensorflow/python/…

标签: python neural-network tensorflow restore


【解决方案1】:

如果您真的只需要从 graphdef 文件 (*.pb) 中恢复,例如从另一个应用程序加载它,您将需要使用来自此处的 freeze_graph.py 脚本:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py

此脚本将一个 graphdef (.pb) 和一个检查点 (.ckpt) 文件作为输入,并输出一个 graphdef 文件,其中包含常量形式的权重(您可以阅读脚本上的文档以获取更多详细信息)。

【讨论】:

    猜你喜欢
    • 2019-03-08
    • 2017-11-06
    • 1970-01-01
    • 2018-09-06
    • 2016-05-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多