我从tensorflow模型下载了预训练的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)
Run Code Online (Sandbox Code Playgroud)
然后最后一行引发错误:
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'
Run Code Online (Sandbox Code Playgroud)
我的系统信息是:
ubuntu 16.04
python 3.5
tensorflow-gpu 1.9
Run Code Online (Sandbox Code Playgroud)
任何的想法?
小智 3
我最近也遇到这样的问题。原因似乎是您用于训练模型的 TensorFlow 版本与您用于读取图描述原型的版本不同。您需要做的是将 TensorFlow 重新安装到您的训练版本。否则,重新训练模型就可以了。
仅供参考,我用来训练的 TensorFlow 版本是 1.12.0,相比之下,我用来加载图的版本是 1.13.1。重新安装即可解决问题。
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |