Python TFLiteConverter.from#u freezed#u图形可以';t加载冻结图:ValueError

Python TFLiteConverter.from#u freezed#u图形可以';t加载冻结图:ValueError,python,tensorflow,tensorflow-lite,Python,Tensorflow,Tensorflow Lite,我使用tensorflow定义一个图,量化该图并将其导出为冻结图。冻结的图形应转换为tensorflow灯光。我试着按照这里的指示: 当我尝试调用函数tf.lite.TFLiteConverter.from\u freezed\u graph时,我得到错误: tensorflow.python.framework.errors\u impl.InvalidArgumentError:输入0 节点conv2d/weights\u quant/AssignMinLast的 conv2d/weight

我使用tensorflow定义一个图,量化该图并将其导出为冻结图。冻结的图形应转换为tensorflow灯光。我试着按照这里的指示:

当我尝试调用函数tf.lite.TFLiteConverter.from\u freezed\u graph时,我得到错误:

tensorflow.python.framework.errors\u impl.InvalidArgumentError:输入0 节点conv2d/weights\u quant/AssignMinLast的 conv2d/weights\u quant/min:0与预期的float\u ref不兼容

这里有什么问题? 我的代码:

将tensorflow导入为tf
从tensorflow.python.tools导入冻结图
使用tf.Session()作为sess:
x=tf.placeholder(tf.float32[None,27648],name=“x”)#128*72*3
y=tf.占位符(tf.float32,[None,72,128,1],name=“y”)#128*72*1
#“重塑”:
输入层=tf.重塑(x,[-1,72,128,3])
#卷积层
conv1=tf.layers.conv2d(
输入=输入层,
过滤器=32,
内核大小=[3,3],
padding=“相同”,
激活=tf.nn.relu,
)
y_out=tf.math.multiply(
conv1,
1.
name=“y_out”
)
损失=tf.reduce\u平均值(tf.nn.softmax\u交叉\u熵\u与logits(labels=y,logits=y\u out))
tf.initialize_all_variables().run()
#建立培训模式
g=tf.get_default_graph()
tf.contrib.quantize.create_training_graph(输入图=g,
数量(延迟=2000000)
tf.initialize_all_variables().run()
#建立评估模型
lossEval=tf.reduce\u mean(tf.nn.softmax\u cross\u entropy\u with\u logits(labels=y\u,logits=y\u out))
#调用eval rewrite,该函数使用
#伪造量化节点和用于评估的折叠批处理范数。
g=tf.get_default_graph()
tf.contrib.quantize.create_eval_图(input_图=g)
#像往常一样调用向后传递优化器。
学习率=5e-5
优化器=tf.train.GradientDescentOptimizer(学习率)
优化程序。最小化(损失)
writer=tf.summary.FileWriter('./graphs',sess.graph)
#todo:火车
导出路径='/导出/'
打印(“将训练模型导出到”,导出路径)
将open(export_path+“qtrained.pbtxt”,“w”)作为f:
f、 写入(str(例如as_graph_def()))
saver=tf.train.saver()
saver.save(sess,导出路径+“qtrained.ckpt”)
对于tf.get_default_graph().as_graph_def()节点中的n:
印刷品(名称)
冻结图表。冻结图表(输入图表=导出路径+“qtrained.pbtxt”,
输入_=”,
输入_binary=False,
输入检查点=导出路径+“/qtrained.ckpt”,
输出\u节点\u name=“y\u out”,
还原\u op\u name=“保存/还原所有”,
filename\u tensor\u name=“save/Const:0”,
输出图='。/冻结/冻结模型.pb',
清除设备=错误,
初始值设定项_nodes=“”)
converter=tf.lite.TFLiteConverter.from_freezed_图形('./freezed/freezed_model.pb',['x'],['y_out']))
converter.inference\u type=tf.lite.constants.QUANTIZED\u UINT8
input\u arrays=转换器。获取\u input\u arrays()
converter.quantized_input_stats={input_数组[0]:(0,1.)}平均值,标准值
tflite_model=converter.convert()
打开(“新的”转换的“模型”.tflite,“wb”).write(tflite\u模型)
打印(“转换完成”)