2017-06-28 134 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