Anaconda是一個用於科學計算的python發行版,支持linux,mac,windows系統,提供了包管理和環境管理的功能,Anaconda是一個打包的集合,裏面裝好了conda,某個版本的python,衆多的packages等,科學計算工具等html
下載中科大鏡像:http://mirrors.ustc.edu.cn/python
從archive路徑下載Anaconda3-4.2.0-Windows-x86_64.exelinux
個人安裝路徑爲 D:\Program Files (x86)\Anaconda,注意這裏我選擇的是3-4.2.0版本。git
進入Anaconda Prompt命令窗口,輸入命令github
conda install mingw libpython
中間會要你選擇Proceed([y]/n)? 輸入yshell
此處安裝若是比較慢或者有問題能夠參考:手把手教你搭建深度學習平臺——避坑安裝theano+CUDA http://www.javashuo.com/article/p-wjuwaylu-eu.htmlnpm
配置環境變量 計算機->屬性->高級系統設置->環境變量編程
編輯系統變量‘path’,追加D:\Program Files (x86)\Anaconda\MinGW\x86_64-w64-mingw32\lib;D:\Program Files (x86)\Anaconda\MinGW\bin;ubuntu
進入Anaconda Prompt命令窗口,輸入命令:windows
conda install theano pygpu
若是安裝失敗,咱們先卸載,而後在嘗試從新安裝
conda uninstall theano
conda install theano
新建環境變量‘PYTHONPATH’:添加值D:\Program Files (x86)\Anaconda\Lib\site-packages\theano;(這個路徑添加了運行spyder可能出錯(打不開),親測)
若是你的電腦沒有GPU,安裝到這裏就能夠了,下面的步驟不用安裝。
安裝完成以後,咱們須要爲VS安裝PTVS。適用於Visual Studio的Python工具(PTVS)是Visual Studio的開源插件,支持使用Python語言進行編程。
具體安裝咱們能夠參考:在 Windows 上的 Visual Studio 中安裝 Python 支持
因爲我在以前安裝的Anconda,自帶的是python3.5.2,並且我安裝的visual studio2015,因此能夠直接安裝Python解釋器。
若是你使用的是visual studio2013,這裏就有個問題(vs2015的能夠跳過):
若是你安裝的是python3.6,因爲vs2013不支持python3.6。所以,你須要從新安裝python版本,這裏能夠選擇安裝python3.5。若是你是vs2015以後的版本,你能夠跳過這裏。
咱們能夠參考文章:如何將Anaconda更新到想要的python版本
對於vs2013,咱們能夠卸載Anaconda,從新安裝一個帶有python3.5的版本(好比Anaconda3-4.0.0,我建議重裝)。或者使用conda命令在線更新。從新安裝比較簡單,我就介紹一下使用conda命令更新。
打開Anaconda Prompt,而後用conda命令更新到python3.5.
#建立一個名爲python35的環境,指定Python版本是3.5(不用管是3.5.x,conda會爲咱們自動尋找3.5.x中的最新版本)
conda create --name python34 python=3.5
activate python35 --激活3.5版本,使用這個
#此時次輸入
python --version
#能夠獲得`Python 3.5.5 即系統已經切換到了3.5的環境
#若是想返回默認的python 3.6.2環境,運行
deactivate python35
#刪除一個已有的環境
conda remove --name python35 --all
等待python3.5安裝成功。這裏我須要從新執行步驟2 安裝minGw,libpython,和步驟三安裝theano。
而後須要去下載PTVS插件並安裝:Visual Studio 2013 PTVS 2.2
若是你是VS2015或者之後的版本,具體安裝以及VS環境變量的配置比較簡單你能夠參考:在 Windows 上的 Visual Studio 中安裝 Python 支持
而後須要手標識現有環境,打開vs2013.新建一個python項目,並對該項目以下操做:
而後選擇python 3.5.
找到路徑C:\Users\你的用戶名,在下面建立文件.theanorc.txt
此處我在C:\Users\Administrator路徑下建立了.theanorc.txt文件
編輯文件輸入內容
[global]
openmp=False [blas] Idflags= [nvcc] fastmath=True flags =-LD:\Program Files (x86)\Anaconda\libs compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin [gcc] cxxflags=-ID:\Program Files (x86)\Anaconda\MinGW
注意標紅的路徑是根據你本身的MinGW來設置的,不須要和個人同樣,上面的:
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
若是你的電腦是裝vs2012,那麼就把10.0改成11.0。這個也就是你安裝的vs所在的目錄。
出現這種錯誤 ,或者咱們在命令窗口執行spyder也出現以下問題:
針對configparse問題,咱們能夠參考文章:
python安裝配置Theano ImportError:cannot import name 'configparser'
咱們清除安裝theano時的路徑配置,即:新建環境變量‘PYTHONPATH’:添加值D:\Program Files (x86)\Anaconda\Lib\site-packages\theano;而後從新嘗試運行
若是import theano出現pygpu相關的錯誤,能夠嘗試運行(若是你已經安裝了CUDU可能會出現這種問題):
conda install pygpu
打開spyder進行測試,若是還有spyder閃退的問題,能夠嘗試從新安裝:
conda uninstall spyder #先卸載
conda install spyder #在安裝
若是仍是不行,你能夠到網上搜索其餘解決方案,或者從新換個版本的Anaconda安裝。
import numpy as np import time import theano A = np.random.rand(1000,10000).astype(theano.config.floatX) B = np.random.rand(10000,1000).astype(theano.config.floatX) np_start = time.time() AB = A.dot(B) np_end = time.time() X,Y = theano.tensor.matrices('XY') mf = theano.function([X,Y],X.dot(Y)) t_start = time.time() tAB = mf(A,B) t_end = time.time() print("NP time: %f[s], theano time: %f[s] (times should be close when run on CPU!)" %( np_end-np_start, t_end-t_start)) print ("Result difference: %f" % (np.abs(AB-tAB).max(), ))
測試結果以下:
若是上面的np time 和theano time 差很少,那就表明你上面的配置沒有問題了,這個有的時候電腦還有其餘的任務,也有可能致使運行的時間不一致。
關於theano以及cuda的安裝參考教程
深度學習(二)theano環境搭建
windows下theano開發環境搭建(實現了GPU加速)
先檢查本身的顯卡支持什麼版本的CUDA
(1)首先打開控制面板,在控制面板進行搜索。
(2)而後,雙擊NVIDIA控制面板,打開以下的控制面板,點擊幫助
點擊系統信息,咱們會看到
(3)選擇組件,而後會看到紅色框的內容,箭頭所指的CUDA版本,就是你電腦支持的CUDA版本。
而後咱們去官網下載咱們顯卡支持的CUDA版本
程序下載完後後,雙擊安裝:
到這一步,問題出現了,告訴我說圖形驅動與顯卡不兼容,若是繼續安裝,即便安裝成功了,也不能使用cuda。所以我去下載一個比較新的CUDA,我下載了cuda_8.0.61_windows.exe(注意下面我使用的是cuda9.0的截圖,可是事實證實在個人電腦安裝9.0後,gpu運行不了,這裏你最好安裝cuda8.0,步驟同下)。
選擇自定義安裝,而後把全部包的都勾選上,省的後面出現什麼錯誤。這一步有可能會遇到驅動衝突,致使某些包安裝失敗
若是某些包安裝失敗,後面使用theano的時候,會跳出錯誤。若是圖形驅動安裝失敗,運行theano的時候就出現錯誤,提示爲cuda版本與驅動版本不一致。所以若是你安裝cuda的過程當中,有出現安裝失敗的,那麼請你接着往下看。安裝失敗通常是驅動衝突的問題,這個時候個人方法是用驅動精靈卸載掉顯卡驅動,而後在進行安裝。
安裝完後測試一下是否安裝正確。在命令窗口輸入:
nvcc -V
回車查看是否有版本信息。若出現版本信息,則證實nvcc安裝成功,以下圖所示:
接着咱們運行一個cuda自帶的測試例子。
因爲個人電腦安裝了VS2015(這個本身下載安裝),因此在這裏打開Samples_vs2015.sln項目,這個例子目錄爲:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0(在安裝完咱們勾選launch samples會自動打開這個文件夾) 。編譯運行獲得以下結果,表示安裝成功:
安裝完了cuda,你還須要cuDNN:
cuDNN下載地址https://developer.nvidia.com/rdp/cudnn-download,cuda8.0對應的版本是cudnn-8.0-windows7-x64-v6.0.zip
咱們須要把下面三個文件中對應的文件拷貝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0路徑對應的文件下。
而後咱們須要從新配置.theanorc.txt文件
[blas]
ldflags= [global] device = gpu floatX = float32
[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 [nvcc] fastmath=True flags =-LD:\Program Files (x86)\Anaconda\libs compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin [gcc] cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW
這樣就完成了theano的GPU配置了。
from theano import function, config, shared, tensor import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], tensor.exp(x)) print(f.maker.fgraph.toposort()) t0 = time.time() for i in range(iters): r = f() t1 = time.time() print("Looping %d times took %f seconds" % (iters, t1 - t0)) print("Result is %s" % (r,)) if numpy.any([isinstance(x.op, tensor.Elemwise) and ('Gpu' not in type(x.op).__name__) for x in f.maker.fgraph.toposort()]): print('Used the cpu') else: print('Used the gpu')
運行結果以下:
(1)GPU測試
下面是用GPU加速的運行結果:
如上運行結果可知,用gpu進行計算時間差很少是0.68秒左右。若是想切換成只用gpu的測試的話,我是經過更改文件:.theanorc.txt的內容。那麼.theanorc.txt的內容爲:
[blas]
ldflags=
[global]
device = cuda
floatX = float32
optimizer = None
[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
[nvcc] fastmath=True flags =-LD:\Program Files (x86)\Anaconda\libs compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin [gcc] cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW
(2)CPU測試。
若是想關閉gpu,進行cpu測試那麼就把.theanorc.txt內容改成:
[blas]
ldflags= [gcc] cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW
重啓電腦或者重啓spyder內核。下面是測試結果圖:
測試告終果,只用cpu花了14秒的時間,也就是說對於個人電腦,使用gpu進行加速,這速度提升了近20倍。
(1)若是執行import theano出現
(2)若是運行出現下面錯誤:
咱們能夠配置.thranorc.txt文件,忽略cuDNN
[dnn]
enabled = False
(3)若是出現CVM未定義的錯誤,按照下面方法移除該文件夾是能夠起做用的(親測)。
(4)執行出現MKL_THREADING_LAYER=GNU錯誤
咱們使用以下命令:
conda install mkl=2017
若是這些方法都不能解決這些錯誤,我只能推薦你看一下這篇文章,但願可以對你有幫助
若是你使用cpu,那麼在命令窗口下運行:
conda install tensorflow
若是你使用gpu, 安裝TensorFlow指定版本(清華源上有的,更換連接最後的版本名稱就好了),那麼在命令窗口下運行:
pip install --upgrade https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/gpu/tensorflow_gpu-1.3.0rc0-cp35-cp35m-win_amd64.whl
測試
import tensorflow as tf (1)print(tf.test.gpu_device_name()) 或者 (2)print(tf.test.is_gpu_available()) 若是(1)輸出device:/gpu:0或者(2)輸出True,則代表使用的GPU
Anaconda是一個用於科學計算的python發行版,支持linux,mac,windows系統,提供了包管理和環境管理的功能,Anaconda是一個打包的集合,裏面裝好了conda,某個版本的python,衆多的packages等,科學計算工具等
下載中科大鏡像:http://mirrors.ustc.edu.cn/
從archive路徑下載Anaconda3-5.0.1-linux-86_64.sh
在home文件夾下建立一個文件夾,命名爲Anaconda,把下載好的程序複製到這裏,而後右鍵在終端打開,輸入:
bash Anaconda3-5.0.1-Linux-x86_64.sh
而後按下enter鍵繼續安裝,一直按enter鍵,直至:
而後按下yes繼續安裝,後面選擇安裝路徑,我是安裝在當前文件夾下的program文件夾下:
執行到這裏說明已經安裝成功
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get autoremove
而後安裝git,在終端輸入
sudo apt-get install git
安裝NVIDIA驅動
首先查看顯卡型號,在終端輸入
lspci | grep -i nvidia
執行結果以下
到Nvidia官網查找你顯卡對應的最新驅動和系統設置。你能夠今後網站上下載並安裝驅動,但這樣作會升級到更新的驅動,而且卸載的時候會有些麻煩。此外,這麼作須要你退出X服務會話,從終端進行安裝,這比較麻煩。
咱們將使用apt-get來安裝驅動。到 「Proprietary GPU Drivers」 PPA中查看是否有你最新的驅動。注意,最新的驅動必定是最穩定的。你也能夠安裝網頁上推薦的驅動版本。添加」Proprietary GPU Drivers」 PPA 資源庫。在寫這篇文章的時候,最新版本是396.18,然而推薦版本是390.48:
在終端輸入
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-390
從新啓動系統
sudo shutdown -r now
檢查以確保安裝了正確版本的NVIDIA驅動
cat /proc/driver/nvidia/version
也能夠重啓後輸入以下命令
nvidia-smi
若是顯示GPU信息,則代表驅動程序安裝成功。 也能夠經過nvidia-settings查看GPU的信息。
若安裝失敗,卸載未安裝成功的顯卡驅動,再從新安裝
sudo apt-get remove --purge nvidia-* #卸載顯卡驅動
首先去cuda官網下載cuda工具包。
操做系統選擇Linux,處理器架構選擇x86_64,發佈版選擇Ubuntu,版本選擇16.04,安裝類型選擇deb(local)。而後下載第一個:
而後切換到cuda工具包所在目錄下,執行以下命令(cuda的安裝路徑所有使用默認路徑):
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda
等待cuda安裝結束。若是安裝過程當中遇到內存不足的問題,執行以下命令
df -h
咱們會看到根目錄/下內存不足,這主要是由於在安裝系統的時候我給根目錄只分配了10G,
當使用Linux系統的時候,發現根目錄(/)的空間不是很充足,而其餘目錄空間有很大的空閒,咱們須要針對如今已有的空間進行調整。
具體也能夠參考文章:Linux下調整根目錄的空間大小
爲了不你在安裝時候,也出現這種問題,建議安裝時給/目錄分配30G以上的空間。
安裝結束以後(有一個/usr/local/cuda的目錄連接到/usr/local/cuda-8.0,後面配置環境變量時可直接使用/usr/local/cuda目錄),配置環境變量: 能夠配置系統級別的環境變量,也能夠配置用戶級別的環境變量。
配置系統級別的環境變量,請使用以下命令:
sudo vi /etc/profile
配置用戶級別的環境變量,請使用以下命令:
vi ~/.bashrc
打開文件後,在文件的結尾部分添加以下文本行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cude/lib64:$LD_LIBRARY_PATH
若是是配置用戶級別的環境變量,也能夠直接運行以下命令:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
檢查以確保安裝了正確版本的CUDA
nvcc -V
重啓系統
sudo shutdown -r now
在CUDA安裝目錄安裝樣例。編譯它們(須要幾分鐘):
/usr/local/cuda/bin/cuda-install-samples-8.0.sh ~/cuda-samples cd ~/cuda-samples/NVIDIA*Samples make -j $(($(nproc) + 1))
注意:(-j $(($(nproc) + 1)))命令使用你機器上的核心數並行執行,因此編譯會更快
bin/x86_64/linux/release/deviceQuery
cuDNN是爲DNN設計的CPU加速庫。它能在多種狀況下幫助提高執行速度。爲了下載cuDNN庫,你須要到Nvidia網站https://developer.nvidia.com/cudnn上進行註冊。當即就可以批准。一旦註冊批准,下載Linux版本的cuDNN v7。
點開下圖中的cuDNN v7.1.2(Mar21.1018) for CUDA 8.0,而後選擇第一個下載。
如下命令請在cuDNN文件所在目錄執行。
tar -zxvf cudnn-8.0-linux-x64-v7.1.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
以上命令就將cuDNN的頭文件、靜態庫和動態庫都放入了cuda目錄下。
最後,執行以下命令,以防在編譯Tensorflow或者其餘開源深度學習框架時找不到動態庫。
sudo ldconfig /usr/local/cuda/lib64
注:ldconfig命令的用途是在目錄/lib和/usr/lib以及動態庫配置文件/etc/ld.so.conf內所列的目錄中,搜索出可共享的動態連接庫(格式如lib*.so*),進而建立出動態裝入程序(ld.so)所需的鏈接和緩存文件。
打開終端輸入:
conda install theano-gpu
若是安裝有問題,參考官網進行安裝:http://www.deeplearning.net/software/theano/install_ubuntu.html#stable-installation
conda install theano pygpu
conda install mkl=2017
sudo gedit ~/.theanorc
[global]
floatX=float32 device=cuda [cuda] root=/usr/local/cuda-8.0 [nvcc] flags=-D_FORCE_INLINES fastmath=True
from theano import function, config, shared, tensor import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], tensor.exp(x)) print(f.maker.fgraph.toposort()) t0 = time.time() for i in range(iters): r = f() t1 = time.time() print("Looping %d times took %f seconds" % (iters, t1 - t0)) print("Result is %s" % (r,)) if numpy.any([isinstance(x.op, tensor.Elemwise) and ('Gpu' not in type(x.op).__name__) for x in f.maker.fgraph.toposort()]): print('Used the cpu') else: print('Used the gpu')
在cpu或者是在gpu上運行能夠經過修改.theanorc文件中爲device = cpu或者device = cuda來決定。每次修改以後,只有重啓spyder內核或者重啓電腦纔會生效。
GPU下運行以下:
在終端下運行
conda install tensorflow
conda install tensorflow-gpu
測試
import tensorflow as tf
(1)print(tf.test.gpu_device_name())
或者
(2)print(tf.test.is_gpu_available())
若是(1)輸出device:/gpu:0或者(2)輸出True,則代表使用的GPU
參考文章:
[2]Linux安裝Anaconda和cuda、cdnn和Tensorflow-gpu
[3]win10下經過Anaconda安裝TensorFlow-GPU1.3版本,並配置pycharm運行Mnist手寫識別程序(或者使用這個安裝)