Python tensorflow中的冻结图:断言错误:y不在图中

Python tensorflow中的冻结图:断言错误:y不在图中,python,graph,tensorflow,deep-learning,Python,Graph,Tensorflow,Deep Learning,在Tensorflow中,在训练模型后,我使用以下方法保存了它: with tf.Session() as session: /** ------- Model training code goes here ------ **/ tf.train.write_graph(session.graph_def, '.', '../har.pbtxt') saver.save(session,save_path = "../har.ckpt") 要冻结并保存优化模型,请执行以下操作:

在Tensorflow中,在训练模型后,我使用以下方法保存了它:

with tf.Session() as session:
/** 
    ------- Model training code goes here ------
**/
tf.train.write_graph(session.graph_def, '.', '../har.pbtxt')  
saver.save(session,save_path = "../har.ckpt")
要冻结并保存优化模型,请执行以下操作:

from tensorflow.python.tools import freeze_graph
from tensorflow.python.tools import optimize_for_inference_lib

freeze_graph.freeze_graph(input_graph = "../har.pbtxt",  input_saver = "",
             input_binary = False, input_checkpoint = "../har.ckpt", output_node_names = "y_",
             restore_op_name = "save/restore_all", filename_tensor_name = "save/Const:0",
             output_graph = "frozen_har.pb", clear_devices = True, initializer_nodes = "")

input_graph_def = tf.GraphDef()
with tf.gfile.Open(output_frozen_graph_name, "r") as f:
    data = f.read()
    input_graph_def.ParseFromString(data)

output_graph_def = optimize_for_inference_lib.optimize_for_inference(
        input_graph_def,
        ["input"], 
        ["y_"],
        tf.float32.as_datatype_enum)

f = tf.gfile.FastGFile("optimized_frozen_har.pb", "w")
f.write(output_graph_def.SerializeToString())
但是,我得到了一个错误:

回溯(最近一次呼叫最后一次):
文件 “C:\Users\asus\Desktop\cnn.py”,第176行,在 output_graph=“freezed_har.pb”,clear_devices=True,initializer_nodes=”“)
文件 “C:\Users\asus\AppData\Local\Programs\Python\Python35\lib\site packages\tensorflow\Python\tools\freeze\u graph.py”, 第122行,在冻结图中 variable\u names\u blacklist=variable\u names\u blacklist)文件“C:\Users\asus\AppData\Local\Programs\Python\Python35\lib\site packages\tensorflow\Python\framework\graph\u util\u impl.py”, 第202行,将变量转换为常量 推理图=提取子图(输入图定义、输出节点名称)
文件 “C:\Users\asus\AppData\Local\Programs\Python\Python35\lib\site packages\tensorflow\Python\framework\graph\u util\u impl.py”, 第141行,在提取子图中 在名称\u到节点\u映射中断言d,“%s不在图形“%d”中断言错误:y不在图形中

我在代码中定义了
y
作为输出:

y_ = tf.nn.softmax(tf.matmul(f, out_weights) + out_biases)
什么似乎是问题?

当您使用

y_ = tf.nn.softmax(tf.matmul(f, out_weights) + out_biases)
y_u不是张量的名称。请使用下面的公式,将张量显式命名为y_

y_ = tf.nn.softmax(tf.matmul(f, out_weights) + out_biases, name="y_")

是 啊我也明白了!重量呢?我有几个CNN层,我定义了一个函数weight_variable()。如何为每个权重变量创建唯一的权重名称?