2017-06-28 135 views
1

这是我第二次经历张量流(gpu)的整个安装过程。Tensorflow GPU正确安装,但Anaconda在CPU上运行它

# Creates a graph. 
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') 
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') 
c = tf.matmul(a, b) 
# Creates a session with log_device_placement set to True. 
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 
# Runs the op. 
print(sess.run(c)) 

The Source

它成功地认识到GPU和运行在其上的基质的功能:当我在CMD activate tensorflow运行,然后,如果我在Python解释装入以下测试代码这个时候。当我打开Anaconda Spyder IDE时,并以相同的方式运行相同的测试,解释器说代码正在CPU上运行。我该如何解决这个问题?什么可能导致它? 我在Win 10上运行。

任何帮助都会很有用,谢谢您提前。

亲切的问候, Konny

+0

当你打开spyder env时,你是什么意思?这是一个不同的环境? – JCooke

+0

我的意思是Spyder IDE,会编辑它。 – KDX2

+2

没有使用它,但你确定它使用正确的解释器吗? – JCooke

回答

1

它不是这个星球上最好的解决办法,但对我的工作下列: 1.打开CMD。 2.输入activate tensorflow 3.输入spyder 4.让它加载一切。 现在上面的测试显示tensorflow确实在GPU上运行。 这不是一个好的解决方案,因为spyder的每个开放必须以这种方式发生。目前这个工作。是的,它默认情况下指向错误的tensorflow环境。我的问题是,我不知道我的计算机上在cmd中运行的位置。当我设法解决这个问题时,我会更新答案。

+0

你有没有可能在过去安装过tensorflow的cpu-only版本? – GPhilo

+0

@GPhilo是的,我做到了。据我记忆,我通过spyder的pip灌输它,然后将其移除,并检查它无法加载张量流,但无法加载。所以,删除是成功的。然后,我安装了tensorflow-gpu,cuda,升级了nvidia驱动程序并获得了cudNN 5.1,因为6.0无法正常工作。我记得conda有一些虚拟envts,也许在其中我已经安装了tensorflow的另一个副本,以便内核绑定到它,而不是gpu。我会尝试摆脱这些环境,并尝试'conda创建-n tensorflow-gpu',看看我能从那里得到什么 – KDX2

+0

我认为你的仅CPU的tensorflow仍然在某处。您用来打开IDE的Spyder快捷方式是使用环境名称的快捷方式? (例如,如果你的env是MyTensorEnv,那么如果你在env中创建anaconda的包时,它会是'Spyder(MyTensorEnv)') – GPhilo