資源:http://deeplearning.net/tutorial/contents.html
按照Deep Learning Tutorials,運(yùn)行一些主要的算法使用Theano.
安裝Theano過程:(系統(tǒng):win7,64-bit)
1. 首先安裝python,我選擇安裝Anaconda (Windows 64-Bit
Python 2.7 Graphical Installer 下載地址)。Anaconda的一些命令(在Anaconda的命令行窗口輸入):
conda list #該命令,將列出Anaconda安裝的所有應(yīng)用包,我們可以看到Anaconda已經(jīng)安裝了numpy, nose, pip, python, scipy, mingw等等。
conda install <pkg name> #該命令用于安裝應(yīng)用包,如 conda install numpy.
pip install <pkg name> #該命令用于安裝應(yīng)用包,如 pip install theano.
conda update <pkg name> #升級(jí)應(yīng)用包,如 conda update python
2. 安裝Theano,在Anaconda 的命令窗口中輸入 pip install theano,可以看到程序開始下載安裝包,并檢查是否滿足安裝條件:numpy>=1.5.0,scipy>=0.7.2,滿足條件之后開始運(yùn)行setup.py安裝theano,安裝完成后會(huì)顯示Successfully installed theano。
3. 測(cè)試Theano安裝情況。
(1)在ipython中輸入以下兩行代碼:
import theano
theano.test()
會(huì)顯示theano的版本號(hào),安裝位置,已經(jīng)其他包的安裝版本,如numpy,nose,python等。
在運(yùn)行中出現(xiàn)g++不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。
(2)在Anaconda的命令行窗口輸入:python Lib\site-packages\theano\tests\run_tests_in_batch.py
顯示unable to find theano-nose,查看run_tests_in_batch.py發(fā)現(xiàn),其中路徑設(shè)置為在bin下尋找theano-nose文件,而實(shí)際上Anaconda文件夾下根本沒有bin這個(gè)文件夾,theano-nose存放在Scripts文件夾中。
》》》嘗試1:將Scripts更名為bin,重新運(yùn)行這句命令,可以成功運(yùn)行。但是出現(xiàn)一個(gè)warning,提示沒有檢測(cè)到g++,所以無法運(yùn)行優(yōu)化后的C代碼版本,只能執(zhí)行python版本。
該種嘗試的結(jié)果是,下次打開Anaconda 命令窗口后出現(xiàn)錯(cuò)誤,因?yàn)槠溥\(yùn)行路徑為Scripts,所以還是不要修改了。
(3)g++問題。我們打開MinGW文件夾,可以很清楚的看到有g(shù)++,但是為什么使用不了呢??在Anaconda 命令窗口中輸入g++也能成功調(diào)用g++.exe啊。所以結(jié)論是,鑒于這個(gè)代碼中出現(xiàn)很明顯的漏洞,所以說不定這里也是錯(cuò)誤,先不管這些了。
試著做了以下配置,也不知行不行。
添加環(huán)境變量: path: C:\Anaconda\MinGW\bin;C:\Anaconda\MinGW\x86_64-w64-mingw32\lib;
新建環(huán)境變量: PYTHONPATH: C:\Anaconda\Lib\site-packages\theano;
在home目錄下(cmd可以看到,我的是C:\Users\Administrator),創(chuàng)建 .theanorc.txt 文件內(nèi)容如下:
[global]
openmp=False
[blas]
ldflags=
[gcc]
cxxflags = -IC:\MinGW\include
(4)驗(yàn)證BLAS是否安裝成功。由于numpy是依賴BLAS的,如果BLAS沒有安裝成功,雖然numpy亦可以安裝,但是無法使用BLAS的加速。驗(yàn)證numpy是否真的成功依賴BLAS編譯,用以下代碼試驗(yàn):
>>> import numpy
>>> id(numpy.dot) == id(numpy.core.multiarray.dot)
False
結(jié)果為False表示成功依賴了BLAS加速,如果是Ture則表示用的是python自己的實(shí)現(xiàn)并沒有加速。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。