关于tensorflow将训练的网络结构转成.pb文件再进行加载时候的报错?

  • 回答 (4)
  • 关注 (2)
  • 查看 (1938)

graph_def is invalid at node 'bn1/Assign': Input tensor 'bn1/bn1_moving_mean:0' Cannot convert a tensor of type float32 to an input of type float32_ref 来这里向各位大神请教,这是在加载使用tensorflow生成的.pb文件时候产生的,然后由于网络结构中有bn层,在加载时候就会报错。发现几乎没有中文评论具体说这个问题,找到的修改方法由于也没有人具体说下原理根据,不太会活用。下面是我找的别人的修改方法,然后出现了"RefSwitch"这些应该是使用了tf.cond(),然后我修改了tf.cond(),不要这个函数,依然报错,因为再bn层具体实现中,我使用了tf.Assign()操作,不知道是不是这个原因导致了本文段开头贴出来的那些错误

for node in input_graph_def.node:

if node.op == 'RefSwitch':

node.op = 'Switch'

for index in xrange(len(node.input)):

if 'moving_' in node.input[index]:

node.input[index] = node.input[index] + '/read'

elif node.op == 'AssignSub':

node.op = 'Sub'

if 'use_locking' in node.attr: del node.attr['use_locking']

李哥李哥提问于
秋之夕颜清念念不忘,必有回响回答于

张量数据类型是不能直接在TensorFlow中进行运算的,必须转换成对应的TensorFlow类型才行.

暗夜的风雪只值白菜价。回答于

当我使用ExponentialMovingAverage对一个图进行import_graph_def时也会出来。我也不知道是什么原因(〜_〜)

上官元恒回答于
用户3603954回答于

你好,遇到了跟你同样的问题,请问你解决了吗?

扫码关注云+社区

领取腾讯云代金券