【问题标题】:Prune computation graph in tensorflow在张量流中修剪计算图
【发布时间】:2017-05-10 21:14:15
【问题描述】:

张量流中的计算图有一些节点input和一些节点output。 input 表示神经网络的输入张量,output 表示其预测。其他一些子图馈送到input,一些损失(和其他计算)跟随output。训练完成后,我想只保留input 和output 之间的(前向)子图。是否可以删除所有其他操作? Deleting all but a few nodes in TensorFlow graph 表示这本身是不可能的。也许通过使用tf.train.export_meta_graph 导出东西的绕行?

【问题讨论】:

  • 当input 前面的操作被删除时,你打算如何提供它?
  • 嗯......如果你真的想要,你可以自定义导出只训练过的变量,然后自定义将它们加载到一个更小的图表中......但我认为不可能创建一个图,然后修剪它。
  • @Priyatham sess.run(ouput, feed_dict={input:my_own_preprocessed_stuff}) 应该这样做。

标签: tensorflow


【解决方案1】:

虽然无法从 tf.Graph 中删除节点,但 TensorFlow 包含可让您修剪较低级别的 tf.GraphDef 协议缓冲区的工具。 TensorFlow graph transformation tool 包含一个名为 strip_unused_nodes 的转换通道,它允许您命名一组输入节点和一组输出节点,并返回一个修剪后的 tf.GraphDef。

【讨论】:

    猜你喜欢
    • 2019-07-13
    • 2023-01-11
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2019-11-13
    • 2017-01-19
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多