gpt4 book ai didi

python - 合并 tensorflow 图时如何保留占位符名称?

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:30 26 4
gpt4 key购买 nike

我想向先前创建的 tensorflow 图添加一个分支。我按照 mrry 对这个问题 (Tensorflow: How to replace a node in a calculation graph?) 的回答做到了这一点,并且我已经保存了新图的定义。

当我导入新图并尝试获取原始图的占位符时,出现以下错误:ValueError: Requested return_element 'pool_3/_reshape:0' not found in graph_def.,但是当我使用原始图形时代码工作正常。

如何维护对原始占位符的引用

我合并这两个图的代码是

with tf.Session() as sess:

# Get the b64_graph and its output tensor
resized_b64_tensor, = (tf.import_graph_def(b64_graph_def, name='',
return_elements=[B64_OUTPUT_TENSOR_NAME+":0"]))

with gfile.FastGFile(model_filename, 'rb') as f:
inception_graph_def = tf.GraphDef()
inception_graph_def.ParseFromString(f.read())

# Concatenate b64_graph and inception_graph
g_1 = tf.import_graph_def(inception_graph_def, name='graph_name',
input_map={RESIZED_INPUT_TENSOR_NAME : resized_b64_tensor})

# Save joined graph
joined_graph = sess.graph
with gfile.FastGFile(output_graph_filename, 'wb') as f:
f.write( joined_graph.as_graph_def().SerializeToString() )

最佳答案

我通过阅读这篇文章间接找到了解决方案 Working with multiple graphs in TensorFlow .

当图有一个名称时,它会附加到它包含的张量和操作的名称上。特别是,如果我将两个图形连接成一个新图形,则后者的名称会附加到之前的名称中。因此,获得张量的正确代码应该是

sess.graph.get_tensor_by_name('graph_name/' + 'PreviousGraphName/PreviousTensorName:0')

关于python - 合并 tensorflow 图时如何保留占位符名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41220472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com