Win10環境下安裝theano並配置GPU詳細教程

来源:http://www.cnblogs.com/zhangjianheng/archive/2016/12/23/6215529.html
-Advertisement-
Play Games

在win10環境下,安裝VS2013,Cuda,Anaconda3,並安裝Theano配置GPU詳細教程 ...


一.軟體和環境

(1)安裝日期2016/12/23

(2)原材料VS2013cuda-8.0(最好下載cuda7.5,目前theano-0.8.2cuda-8支持不是很好),Anaconda3-4.2.064位);

(3)環境為win10.

 

二.安裝步驟

(1)安裝VS2013。這個沒什麼可說的,下載64位版本後就是一路下一步、確定就行,記住安裝位置就可以了,我這裡的安裝目錄是D:\software\VS2013

 

接著右鍵我的電腦-》屬性-》高級系統設置-》環境變數,之後編輯系統變數Path,加入兩個路徑D:\software\VS2013\VC\binD:\software\VS2013\Common7\IDE,以分號隔開,如圖:

 

點擊確定即可。

 

(2)安裝cuda。這個也沒什麼可說的,到官網上下載cuda,並一路下一步+確定就好了,註意如果安裝過程中win10提示阻止某項操作,一定要選擇允許本次操作或允許程式所有操作,否則cuda就會安裝失敗。Cuda官網地址為

http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/#axzz46v2MC6l8

下載地址為https://developer.nvidia.com/cuda-downloads

如圖:

 

註意:這是cuda-8版本,對目前版本的theano支持不是很好,不過不影響使用,最好還是下載cuda7.5,我這裡懶得再重裝一遍,所以就用的cuda-8

還有一定要記住cuda的安裝路徑,我的路徑就是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,如圖:

 

 

(3)右鍵我的電腦-》屬性-》高級系統設置-》環境變數,可以看到系統變數中增加了兩個變數CUDA_PATHCUDA_PATH_V8_0,如圖:

 

之後編輯系統變數Path,加入兩個路徑%CUDA_PATH%\lib\x64%CUDA_PATH%\bin,要用分號隔開,如圖:

 

點擊確定。

打開命令行,輸入nvcc -V,如果出現下圖則安裝成功:

 

 

並可到目錄C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\1_Utilities\deviceQuery下用VS2013打開並運行測試樣例deviceQuery_vs2013.vcxproj文件,如圖:(註意C:\ProgramData為隱藏文件夾,需要點擊C-》查看-》選項-》查看,選中顯示隱藏的文件、文件夾和驅動器,點擊確定。如圖)

 

圖為顯示C:\ProgramData文件夾的查看選項

 

 

                                                                                       

圖為deviceQuery_vs2013.vcxproj的位置

 

 

圖為在VS2013中的運行結果

最後一行為Result = Pass則表示安裝配置成功。

 

 

(4)安裝Anaconda3-4.2.0,這個很簡單,就是一路確定即可,記住安裝位置,如我就是安裝在D:\software\Anaconda3,如圖:

 

 

接著右鍵我的電腦-》屬性-》高級系統設置-》環境變數,在用戶變數中添加PATH,並加入路徑D:\software\Anaconda3D:\software\Anaconda3\ScriptsD:\software\Anaconda3\Library\bin,點擊確定。如圖:

 

 

之後進入命令行輸入python,如果出現如圖信息,則安裝成功:

 

關閉命令行。

 

(5)安裝mingwlibpython。打開命令行後輸入conda install mingw libpython即可,目前libpython已經支持python3.5了,就不用再配置python3.4的環境了。註意如果安裝mingw速度很慢,則可ctl+c並退出命令行,再進入命令行修改Anaconda的鏡像,這裡推薦清華的鏡像,方法為在命令行中輸入:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

,之後再conda install mingw libpython即可。

之後到Anaconda3的安裝目錄中可以看到MinGW的文件夾,如圖:

 

註:網上說需要把MinGW的路徑加入到環境變數,其實不用,等會兒再theano的配置文件中標出MinGW的位置即可

 

(6)安裝theano。首先打開命令行,輸入conda install scipy,之後再輸入pip install theano即可。(為什麼要輸入conda install scipy我也不明白,但是網上建議)。之後在個人主文件夾下新建一個“.theanorc.txt”的文檔。個人主文件夾就是打開命令行後所顯示的文件夾路徑,比如我的就是C:\Users\15540

 

 

註意theano的配置文件為.theanorc.txt,註意前面那個點要有,並且文件名為.theanorc.txt是文件類型,不要弄錯。打開.theanorc.txt寫入以下信息:

[global]

openmp=False

device = gpu

optimizer_including=cudnn

floatX = float32

allow_input_downcast=True

[lib]

cnmem = 0.8

[blas]

ldflags=

[gcc]

cxxflags=-ID:\software\Anaconda3\MinGW

[nvcc]

flags = -LD:\software\Anaconda3\libs

compiler_bindir = D:\software\VS2013\VC\bin

fastmath = True

註意需要把cxxflags=-ID:\software\Anaconda3\MinGW換成你的Anaconda3MinGW的位置,flags = -LD:\software\Anaconda3\libs換為你的Anaconda3libs的位置,compiler_bindir = D:\software\VS2013\VC\bin換為你的VS2013VC\bin的位置;還有cnmem = 0.8這個網上說設為1,但是貌似有點問題,建議設為小於1的值,如我這裡設為0.8 ,這就可以避免後面顯示CNMEM is disabled了。

 

(7)更新cudnn文件,到網上搜索cudnn下載下來(到官網註冊一下就可以下載了,官網網址為https://developer.nvidia.com/cudnn)。將下載來的文件解壓,解壓出cuda文件夾,裡面包含3個文件夾,如圖。將設三個文件夾替換掉系統裡面的對應文件,進行覆蓋替換即可,例如我的文件目錄為C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。覆蓋掉後面導入theano時會就不會出現CuDNN not available提示了。

 

 

(8)測試theano。打開命令行,輸入python,在輸入import theano,如果出現UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 11: invalid continuation byte這種編碼問題,這是因為掉用nvcc返回的字元串是使用的cwindows預設的預設編碼,直接找到theano中對應的報錯文件,把源碼出錯的地方改為 *.decode("GBK")就可以。比如我的是在theano下的__init__.py出現的編碼問題,則修改為:

 

 

(如果出現上述錯誤,關閉命令行修改錯誤,重輸一遍命令即可)出現以下畫面則表示成功。

 

註:可以看到仍有warning,不過不影響使用,出現warning的原因主要是cuda-8對目前版本的theano支持不太好導致,不過相信以後更新的theano會解決這個問題,如果實在接受不了這個warning就安裝cuda7.5,步驟一樣

 

三.其他問題

1)不要在環境變數添加PYTHONPATH變數,否則容易在import theano後出現configparser找不到或沒有這個組件這個問題(在我這裡是這樣的);

2)建議在安裝完cuda後重啟電腦;

3)如果在命令行輸入命令後出現什麼問題,建議修改完問題後重啟命令行;

4)如果還有其他問題,試試重啟電腦後在import theano,如果還有問題,一般就是配置文件.theanorc.txt的問題(我這個配置方式不一定百分之百的適合你),下麵列出一些我參考的文章:

http://blog.csdn.net/u011821462/article/details/50145221

http://blog.csdn.net/stormragewang/article/details/51261465

http://blog.csdn.net/voidfaceless/article/details/53711550

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "fatal.h"//頭文件 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define Error(Str) FatalError(Str) 4 #define FatalError(Str) fprintf(stderr,"%s\n",Str),exit ...
  • 樣式表的幾點常用:background-color: 背景顏色 background-image:url 設置圖片背景 background-repeat平鋪 repeat-x 橫向平鋪 background-position:center 背景居中 background-position:righ ...
  • 這個鏈表是帶有表頭的單鏈表。實現鏈表的一些規範操作,初始化,插入,刪除等。包括兩個頭文件list.h,fatal.h,庫函數list.c,測試函數testlist.c。頭文件放的都是函數聲明,庫函數list.c放的的函數的定義。 頭文件list.h 頭文件fatal.h: 庫函數list.c: 測試 ...
  • 觀察者模式由四個角色組成:抽象主題角色,抽象觀察者角色,具體主題角色,抽象觀察者角色,具體觀察者角色。 抽象主題角色(Subject):把所有的觀察者角色的引用保存在一個集合中,可以有任意數量的觀察者。其提供一個介面,可以添加、刪除觀察者,並可以向登記過的觀察者發送通知。 具體主題角色(Observ ...
  • 樹狀數組套主席樹模板題。。。 題目大意: 給定一個含有n個數的序列a[1],a[2],a[3]……a[n],程式必須回答這樣的詢問:對於給定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的數是多少(1≤k≤j-i+1),並且,你可以改變一些a[i]的值,改變後,程式還能針對 ...
  • 一、字元串操作 創建字元串 String s2 = new String("Hello World"); String s1 = "Hello World"; 1.字元串連接 多個字元串鏈接時,每個字元串之間用+相連,+就是字元串鏈接,連接之後生成一個新的字元串。 2.獲取字元串長度 a.lengh ...
  • Swift相關知識,有時間就敲點,供自己學習總結,亦或也有幸能幫到他人,有理解、使用錯誤的地方也望能得到指正。 ///******************************************************************************************* ...
  • python內置函數open()用於打開文件和創建文件對象 語法 name:文件名 mode:指定文件的打開模式 r:只讀 w:寫入 a:附加 r+,w+,a+同時支持輸入輸出操作 rb,wb+以二進位方式打開 bufsize:定義輸出緩存 0表示無輸出緩存 1表示使用緩衝 負數表示使用系統預設設置 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...