Tensorflow 0.8导入和导出输出张量问题

时间:2016-04-26 23:26:28

标签: import export neural-network tensorflow python-3.5

我正在使用Tensorflow 0.8和Python 3.我正在尝试训练神经网络,目标是每50次迭代自动导出/导入网络状态。问题是当我在第一次迭代时导出输出张量时,输出张量名称为['Neg:0', 'Slice:0'],但是当我在第二次迭代时导出输出张量时,输出张量名称更改为['import/Neg:0', 'import/Slice:0'],并导入此输出张量不起作用:

ValueError: Specified colocation to an op that does not exist during import: import/Variable in import/Variable/read

我想知道是否有人对此问题有任何想法。感谢!!!

1 个答案:

答案 0 :(得分:2)

这就是tf.import_graph_def的工作方式。

如果您不想要前缀,只需将name参数设置为空字符串,如以下示例所示。

# import the model into the current graph
with tf.Graph().as_default() as graph:

    const_graph_def = tf.GraphDef()
    with open(TRAINED_MODEL_FILENAME, 'rb') as saved_graph:
      const_graph_def.ParseFromString(saved_graph.read())
      # replace current graph with the saved graph def (and content)
      # name="" is important because otherwise (with name=None)
      # the graph definitions will be prefixed with import.
      # eg: the defined operation FC2/unscaled_logits:0
      # will be import/FC2/unscaled_logits:0
      tf.import_graph_def(const_graph_def, name="")
    [...]