我从tensorflow models下载了经过预训练的mobilenetV2模型,并尝试还原该图,但是出现了意外错误。
重现该错误的代码非常简洁:
import tensorflow as tf
meta_path = 'path/to/mobilenet_v2_0.35_224/mobilenet_v2_0.35_224.ckpt.meta'
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))
saver = tf.train.import_meta_graph(meta_path)
然后最后一行引发错误:
Traceback (most recent call last):
File "/home/CVAR/study/codes/languages/python/pycharm/learn_tensorflow/train_mobileNet_v2/test_of_functions/saver_test.py", line 21, in <module>
saver = tf.train.import_meta_graph(meta_path)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/saver.py", line 1960, in import_meta_graph
**kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/meta_graph.py", line 744, in import_scoped_meta_graph
producer_op_list=producer_op_list)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 432, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/importer.py", line 391, in import_graph_def
_RemoveDefaultAttrs(op_dict, producer_op_list, graph_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/importer.py", line 158, in _RemoveDefaultAttrs
op_def = op_dict[node.op]
KeyError: 'InfeedEnqueueTuple'
我的系统信息是:
ubuntu 16.04
python 3.5
tensorflow-gpu 1.9
有什么主意吗?
答案 0 :(得分:1)
我最近也遇到了这样的问题。看来原因似乎是您用来训练模型的TensorFlow版本与您用来读取图形描述原型的版本不同。您需要做的是将TensorFlow重新安装到您的培训版本。否则,可以重新训练模型。
仅供参考,我用来训练的TensorFlow版本是1.12.0,相比之下,我用来加载图形的版本是1.13.1。重新安装可以解决问题。
答案 1 :(得分:0)
有些操作没有定义。 from conv_blocks import *
将解决此错误,但我遇到另一个问题“ ValueError:NodeDef预期的输入'float,int32'与指定的1个输入不匹配;“。仍在调试中,但希望此技巧可以解决您的问题。