Python 如何导入经过培训的深度CNN模型?

Python 如何导入经过培训的深度CNN模型?,python,tensorflow,conv-neural-network,Python,Tensorflow,Conv Neural Network,我使用Tensorflow在集群上的GPU上训练了一个深度CNN模型。现在我想把这个模型放在我的笔记本电脑上。但当我想使用以下命令时,我收到一个错误: new_saver = tf.train.import_meta_graph('./3/Model_Arch3/Deep_CNN_Color_Arch8.ckpt-178000.meta') 我收到的错误是: 回溯(最后一次调用):文件“dev_test.py”,第28行,在 new_saver=tf.train.import_meta_图形(

我使用Tensorflow在集群上的GPU上训练了一个深度CNN模型。现在我想把这个模型放在我的笔记本电脑上。但当我想使用以下命令时,我收到一个错误:

new_saver = tf.train.import_meta_graph('./3/Model_Arch3/Deep_CNN_Color_Arch8.ckpt-178000.meta')
我收到的错误是:

回溯(最后一次调用):文件“dev_test.py”,第28行,在 new_saver=tf.train.import_meta_图形('./3/Model_Arch3/Deep_CNN_Color_Arch8.ckpt-178000.meta')) 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py”, 第1810行,在导入元图中 **kwargs)文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/meta_-graph.py”, 第660行,在导入范围元图中 producer_op_list=producer_op_list)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/importer.py”, 第285行,在导入图中 raise VALUERROR('在定义的操作中没有名为%s的操作。'%node.op)VALUERROR:在定义的操作中没有名为ParseSingleExample的操作 行动


如果有人能帮我解决这个问题,我真的很感激。

这也可能是您尝试执行的操作的延迟加载问题。 在加载图形之前,请尝试添加
dir(tf.contrib)
一行

供参考-在旧TF GitHub问题中提出了类似的问题


更新:

我想我现在明白了。因为你在GPU上训练,现在你在普通机器/CPU上运行。您需要从加载的对象中清除设备。尝试将clear_设备添加为参数:

dir(tf.contrib)
with tf.Session() as sess:
    new_saver = tf.train.import_meta_graph(full_file_path, clear_devices=True)

最后,本地计算机和GPU计算机之间的TF版本可能不同步。尝试更新您的本地版本。

我发现了问题所在。 我使用Python3.5.4进行培训过程。然后我使用Python2.7来重建图形,这就是问题所在。
感谢那些试图帮助我的人

我感觉可能不支持相对路径。你能试着传递文件的完整路径吗?我试着传递文件的完整路径,但它不起作用。奇怪的是,当我用我的CPU在笔记本电脑上训练这个网络时,我可以毫无问题地加载模型!当我从gpu上运行的代码中获取图形时,就会出现这种问题。但是,当我在没有GPU的笔记本电脑上运行此代码并获取图形文件时,它工作正常。我尝试了new\u saver=tf.train.import\u meta\u graph(full\u file\u path,clear\u devices=True),但它也不起作用!嗯,很有趣。你能试试我的更新代码吗?确保这是发生错误的地方,其他线路不会干扰。Ofc full_file_path应该是感兴趣文件的文件路径:)我尝试了你的代码,但仍然不起作用!我删除了其他不必要的代码行,我可以在我训练模型的GPU集群上构建图形。啊,刚刚注意到了这一点。你介意投票说明我们是如何找到正确的问题的吗?可能有助于其他人考虑尝试我们所做的所有方法,因为出现该问题的原因有几个。