5.3 Windows安裝說明
譯者:Python 文檔協(xié)作翻譯小組,原文:Windows Installation Instructions。
本文以 CC BY-NC-SA 4.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。
Python 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。
警告
如果你想從GitHub安裝Theano的前沿或開發(fā)版本,請確保你正在閱讀此頁面的最新版本。
警告
Theano主要在Linux機器上開發(fā)和測試。
這些說明逐步介紹了如何使用免費提供的工具和編譯器將Theano和所需的依賴關(guān)系安裝在32位或64位系統(tǒng)上。
安裝依賴
注意
以下列出的命令行假定在Windows提示符中運行:在Windows <= 7上打開提示符,點擊開始并輸入cmd命令來啟動一個命令行窗口。在Windows 8中,轉(zhuǎn)到“開始”屏幕,然后鍵入command或cmd。
Theano目前在Windows上工作,但它需要編譯器的C / C + +(對于Python 2.7家庭這必須是Microsoft Visual Studio 2008編譯器),CUDA(CUDA v5.5是必需的,因為它是支持Visual Studio 2008的最新版本)和GCC(由Theano生成的非CUDA C代碼)。
Visual Studio和CUDA
不幸的是,Microsoft最近停止分發(fā)Visual Studio Express 2008(提供了Python 2.7所需的編譯器),因此我們需要臨時安裝Visual Studio Express 2010,以便能夠安裝CUDA(其安裝程序需要Visual Studio安裝才能繼續(xù)) 。之后,可以安全地刪除Visual Studio 2010。如果有人知道如何安裝CUDA 5.5沒有正確的Visual Studio安裝,請讓我們知道。
你可以從Visual Studio Express下載。請安裝Visual C版本。我們已下載了一體機CD,使用7zip解壓縮,并在VCExpress \ setup.exe運行安裝程序。
如果你想要64位Python安裝,Visual Studio 2010 Express不提供64位編譯器。要獲得一個下載并安裝Windows軟件開發(fā)包版本7.1。
現(xiàn)在你有一個運行(和免費甚至商業(yè)使用)安裝帶32和64位編譯器的MSVS2010 IDE。
安裝Visual Studio后,您可以安裝CUDA。我們推薦CUDA 5.5,因為它支持MSVC 2008。從CUDA存檔下載CUDA安裝程序。一定要獲得32位或64位版本,這取決于你的系統(tǒng)配置。
安裝CUDA后,您可以刪除VisualStudio Express 2010。
最后,獲取Microsoft Visual C ++ Compiler for Python 2.7。它提供了Visual Studio 2008現(xiàn)在過時的編譯器,它們與Python 2.7的兼容性是必需的。要為所有用戶安裝軟件包,請:
- 打開管理員控制臺(打開
start,然后鍵入cmd,右鍵單擊命令提示符圖標(biāo),選擇運行 as administrator) -
cd到您的下載目錄并執(zhí)行msiexec / i VCForPython27.msi ALLUSERS = 1
軟件包將安裝到C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0。
最后從這里下載stdint.h標(biāo)題,并將其另存為C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h。
GCC
Theano C代碼編譯器目前需要一個GCC安裝。我們使用了為32位和64位平臺提供的構(gòu)建TDM GCC。安裝過程中需要注意的幾個注意事項:
- 安裝到?jīng)]有空格的目錄中(我們將它放在
C:\SciSoft\TDM-GCC-64中) - 如果你不想雜亂你的系統(tǒng)PATH取消檢查
添加 到 路徑選項。 - 通過選中
openmp 支持 選項啟用OpenMP支持。
Scientific Python的分發(fā)
推薦:Anaconda
ContinuumIO為所有3個主要桌面操作系統(tǒng)(包括Windows 32位和64位)提供了一個免費的Python發(fā)行版,其中包括Theano及其所有依賴項。這是在Windows上獲得Theano的最簡單的方法之一。只需從Anaconda下載頁下載并執(zhí)行安裝程序,然后從Anaconda 提示執(zhí)行以下命令:
$ conda install theano
備選:WinPython
我們強烈推薦Pierre Raybaut的WinPython分發(fā) - 它是為32位和64位系統(tǒng)編譯的,鏈接對快速的MKL BLAS實現(xiàn),支持安裝輔助包Chris Gohlke,免費。
WinPython還允許便攜式安裝,不混亂你的主系統(tǒng)PATH。我們已經(jīng)安裝到c:\SciSoft\WinPython-64bit-2.7.9.4。
學(xué)術(shù)界的備選:EPD
如果你在學(xué)術(shù)界工作,一個安裝大多數(shù)依賴的簡單方法是安裝Enthought Python Distribution(EPD)。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。EPD安裝特別包括Python(和開發(fā)頭文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL實現(xiàn)的blas。
如果你想使用iPython shell,你應(yīng)該首先嘗試導(dǎo)入NumPy:
C:\Users\user>ipython
[...]
In [1]: import numpy
如果您看到一條錯誤消息,告訴您DLL 加載 失敗,這可能是由于腳本啟動ipython。如果C:\SciSoft\Python27是安裝EPD的目錄,請編輯C:\SciSoft\Python27\Scripts\ipython.bat
set path="C:\SciSoft\Python27";%path%
刪除Python27周圍的引號,導(dǎo)致:
set path=C:\SciSoft\Python27;%path%
然后,它應(yīng)該在所有新的終端工作。
pip不包括在EPD中,但你可以簡單地安裝它:
easy_install pip
替代方法:Canopy
Canopy是另一個安裝所有Theano依賴項的軟件。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。
- 安裝Canopy x64并將其更新到最新版本(
幫助/軟件更新...),因為舊版Canopy版本安裝pip有問題。 - 然后從Canopy包管理器安裝
pip。 - 在Windows提示符中,鍵入
pip install theano。 - 在Canopy包管理器中,搜索和安裝軟件包“mingw 4.5.2”和“l(fā)ibpython 1.2”
- (僅適用于Theano 0.6rc3或更早版本)“l(fā)ibpython 1.2”軟件包將文件
libpython27.a和libmsvcr90.a安裝到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs。將這兩個文件復(fù)制到C:\ Users \&lt; USER&gt; \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.0.0.1160.win-x86_64libs。 - (Needed only for Theano 0.6rc3 or earlier) Set the Theano flags
blas.ldflags=-LC:\Users\<USER>\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.0.1160.win-x86_64\Scripts -lmk2_core -lmk2_intel_thread -lmk2_rt.
Alternative: Python(x,y)
如果你沒有EPD的商業(yè)許可,并且沒有資格獲得免費學(xué)術(shù)許可,并且你的計算機上既沒有安裝Python也不安裝MinGW,你可以使用Python(x,y)安裝Theano的大多數(shù)依賴項, 。它是一個單一的安裝文件,包含額外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前沒有64位版本。您可以保留默認安裝選項,除了安裝目錄不應(yīng)包含任何空格(特別是不要安裝到C:\ Program Files )。
Alternative: manual installation
以下說明提供了手動安裝所有Theano依賴關(guān)系的步驟。請注意,應(yīng)該可以使用Cygwin而不是MinGW運行Theano,但這還沒有經(jīng)過測試。
對于32位MinGW:從MinGW文件下載最新版本的
自動 MinGW 安裝程序 t>(mingw-get-inst)并安裝它(你應(yīng)該安裝所有可選組件,但不需要Objective C和Ada編譯器)。-
對于64位MinGW(注意64位的手動安裝是實驗):從項目的發(fā)布頁下載最新版本的MinGW-w64,
C:\mingw64。也從這個頁面下載MSYS(雖然它是一個32位版本的MSYS,這沒關(guān)系,因為它只是一個方便的工具)。將MSYS提取到同一個文件夾中,例如,你最終使用C:\mingw64\msys。運行C:\mingw64\msys\msys.bat,在MSYS shell中,鍵入sh /postinstall/pi.sh并回答幾個問題,以便MSYS正確地鏈接到你的MinGW安裝。
-
建議將您的MSYS主目錄設(shè)置為與您的Windows主目錄相同。這將避免在Windows命令提示符下運行Theano和MSYS shell之間不一致的行為。沒有設(shè)置全局Windows
HOME環(huán)境變量(可能會影響其他程序)的一種方法是編輯您的msys.bat文件(例如在C:\MinGW\msys\1.0或C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):set HOME=%USERPROFILE% 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。
確保Python安裝目錄及其
Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATHWindows環(huán)境變量,或通過在您的MinGW主目錄中創(chuàng)建一個.profile文件來完成,包含導(dǎo)出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts(注意,后者僅在從MSYS shell運行Theano時才工作。-
如果你正在安裝64位版本,你將需要以下hack,以便能夠用GCC編譯Theano文件(如果你使用32位版本,請?zhí)^此步驟)。在臨時工作目錄中,復(fù)制
python27.dll(位于C:\\Windows\\System32)以及python27.def。編輯python27.def并將Py_InitModule4替換為Py_InitModule4_64。然后打開MSYS shell,轉(zhuǎn)到此臨時目錄,并運行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a最后,將生成的libpython27.a文件復(fù)制到你的
C:\\Python27\\libs文件夾中。 -
為了運行Theano的測試套件,你需要nose。在解壓縮其源代碼(您可以使用7-zip)之后,您可以通過運行以下命令(從Windows命令提示符或MSYS shell)從其代碼目錄中構(gòu)建和安裝它:
python setup.py install
Visual Studio和CUDA
不幸的是,Microsoft最近停止分發(fā)Visual Studio Express 2008(提供了Python 2.7所需的編譯器),因此我們需要臨時安裝Visual Studio Express 2010,以便能夠安裝CUDA(其安裝程序需要Visual Studio安裝才能繼續(xù)) 。之后,可以安全地刪除Visual Studio 2010。如果有人知道如何安裝CUDA 5.5沒有正確的Visual Studio安裝,請讓我們知道。
你可以從Visual Studio Express下載。請安裝Visual C版本。我們已下載了一體機CD,使用7zip解壓縮,并在VCExpress \ setup.exe運行安裝程序。
如果你想要64位Python安裝,Visual Studio 2010 Express不提供64位編譯器。要獲得一個下載并安裝Windows軟件開發(fā)包版本7.1。
現(xiàn)在你有一個運行(和免費甚至商業(yè)使用)安裝帶32和64位編譯器的MSVS2010 IDE。
安裝Visual Studio后,您可以安裝CUDA。我們推薦CUDA 5.5,因為它支持MSVC 2008。從CUDA存檔下載CUDA安裝程序。一定要獲得32位或64位版本,這取決于你的系統(tǒng)配置。
安裝CUDA后,您可以刪除VisualStudio Express 2010。
最后,獲取Microsoft Visual C ++ Compiler for Python 2.7。它提供了Visual Studio 2008現(xiàn)在過時的編譯器,它們與Python 2.7的兼容性是必需的。要為所有用戶安裝軟件包,請:
- 打開管理員控制臺(打開
start,然后鍵入cmd,右鍵單擊命令提示符圖標(biāo),選擇運行 as administrator) -
cd到您的下載目錄并執(zhí)行msiexec / i VCForPython27.msi ALLUSERS = 1
軟件包將安裝到C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0。
最后從這里下載stdint.h標(biāo)題,并將其另存為C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h。
GCC
Theano C代碼編譯器目前需要一個GCC安裝。我們使用了為32位和64位平臺提供的構(gòu)建TDM GCC。安裝過程中需要注意的幾個注意事項:
- 安裝到?jīng)]有空格的目錄中(我們將它放在
C:\SciSoft\TDM-GCC-64中) - 如果你不想雜亂你的系統(tǒng)PATH取消檢查
添加 到 路徑選項。 - 通過選中
openmp 支持 選項啟用OpenMP支持。
Scientific Python的分發(fā)
推薦:Anaconda
ContinuumIO為所有3個主要桌面操作系統(tǒng)(包括Windows 32位和64位)提供了一個免費的Python發(fā)行版,其中包括Theano及其所有依賴項。這是在Windows上獲得Theano的最簡單的方法之一。只需從Anaconda下載頁下載并執(zhí)行安裝程序,然后從Anaconda 提示執(zhí)行以下命令:
$ conda install theano
備選:WinPython
我們強烈推薦Pierre Raybaut的WinPython分發(fā) - 它是為32位和64位系統(tǒng)編譯的,鏈接對快速的MKL BLAS實現(xiàn),支持安裝輔助包Chris Gohlke,免費。
WinPython還允許便攜式安裝,不混亂你的主系統(tǒng)PATH。我們已經(jīng)安裝到c:\SciSoft\WinPython-64bit-2.7.9.4。
學(xué)術(shù)界的備選:EPD
如果你在學(xué)術(shù)界工作,一個安裝大多數(shù)依賴的簡單方法是安裝Enthought Python Distribution(EPD)。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。EPD安裝特別包括Python(和開發(fā)頭文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL實現(xiàn)的blas。
如果你想使用iPython shell,你應(yīng)該首先嘗試導(dǎo)入NumPy:
C:\Users\user>ipython
[...]
In [1]: import numpy
如果您看到一條錯誤消息,告訴您DLL 加載 失敗,這可能是由于腳本啟動ipython。如果C:\SciSoft\Python27是安裝EPD的目錄,請編輯C:\SciSoft\Python27\Scripts\ipython.bat
set path="C:\SciSoft\Python27";%path%
刪除Python27周圍的引號,導(dǎo)致:
set path=C:\SciSoft\Python27;%path%
然后,它應(yīng)該在所有新的終端工作。
pip不包括在EPD中,但你可以簡單地安裝它:
easy_install pip
替代方法:Canopy
Canopy是另一個安裝所有Theano依賴項的軟件。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。
- 安裝Canopy x64并將其更新到最新版本(
幫助/軟件更新...),因為舊版Canopy版本安裝pip有問題。 - 然后從Canopy包管理器安裝
pip。 - 在Windows提示符中,鍵入
pip install theano。 - 在Canopy包管理器中,搜索和安裝軟件包“mingw 4.5.2”和“l(fā)ibpython 1.2”
- (僅適用于Theano 0.6rc3或更早版本)“l(fā)ibpython 1.2”軟件包將文件
libpython27.a和libmsvcr90.a安裝到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs。將這兩個文件復(fù)制到C:\ Users \&lt; USER&gt; \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.0.0.1160.win-x86_64libs。 - (Needed only for Theano 0.6rc3 or earlier) Set the Theano flags
blas.ldflags=-LC:\Users\<USER>\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.0.1160.win-x86_64\Scripts -lmk2_core -lmk2_intel_thread -lmk2_rt.
Alternative: Python(x,y)
如果你沒有EPD的商業(yè)許可,并且沒有資格獲得免費學(xué)術(shù)許可,并且你的計算機上既沒有安裝Python也不安裝MinGW,你可以使用Python(x,y)安裝Theano的大多數(shù)依賴項, 。它是一個單一的安裝文件,包含額外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前沒有64位版本。您可以保留默認安裝選項,除了安裝目錄不應(yīng)包含任何空格(特別是不要安裝到C:\ Program Files )。
Alternative: manual installation
以下說明提供了手動安裝所有Theano依賴關(guān)系的步驟。請注意,應(yīng)該可以使用Cygwin而不是MinGW運行Theano,但這還沒有經(jīng)過測試。
對于32位MinGW:從MinGW文件下載最新版本的
自動 MinGW 安裝程序 t>(mingw-get-inst)并安裝它(你應(yīng)該安裝所有可選組件,但不需要Objective C和Ada編譯器)。-
對于64位MinGW(注意64位的手動安裝是實驗):從項目的發(fā)布頁下載最新版本的MinGW-w64,
C:\mingw64。也從這個頁面下載MSYS(雖然它是一個32位版本的MSYS,這沒關(guān)系,因為它只是一個方便的工具)。將MSYS提取到同一個文件夾中,例如,你最終使用C:\mingw64\msys。運行C:\mingw64\msys\msys.bat,在MSYS shell中,鍵入sh /postinstall/pi.sh并回答幾個問題,以便MSYS正確地鏈接到你的MinGW安裝。
-
建議將您的MSYS主目錄設(shè)置為與您的Windows主目錄相同。這將避免在Windows命令提示符下運行Theano和MSYS shell之間不一致的行為。沒有設(shè)置全局Windows
HOME環(huán)境變量(可能會影響其他程序)的一種方法是編輯您的msys.bat文件(例如在C:\MinGW\msys\1.0或C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):set HOME=%USERPROFILE% 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。
確保Python安裝目錄及其
Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATHWindows環(huán)境變量,或通過在您的MinGW主目錄中創(chuàng)建一個.profile文件來完成,包含導(dǎo)出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts(注意,后者僅在從MSYS shell運行Theano時才工作。-
如果你正在安裝64位版本,你將需要以下hack,以便能夠用GCC編譯Theano文件(如果你使用32位版本,請?zhí)^此步驟)。在臨時工作目錄中,復(fù)制
python27.dll(位于C:\\Windows\\System32)以及python27.def。編輯python27.def并將Py_InitModule4替換為Py_InitModule4_64。然后打開MSYS shell,轉(zhuǎn)到此臨時目錄,并運行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a最后,將生成的libpython27.a文件復(fù)制到你的
C:\\Python27\\libs文件夾中。 -
為了運行Theano的測試套件,你需要nose。在解壓縮其源代碼(您可以使用7-zip)之后,您可以通過運行以下命令(從Windows命令提示符或MSYS shell)從其代碼目錄中構(gòu)建和安裝它:
python setup.py install
推薦:Anaconda
ContinuumIO為所有3個主要桌面操作系統(tǒng)(包括Windows 32位和64位)提供了一個免費的Python發(fā)行版,其中包括Theano及其所有依賴項。這是在Windows上獲得Theano的最簡單的方法之一。只需從Anaconda下載頁下載并執(zhí)行安裝程序,然后從Anaconda 提示執(zhí)行以下命令:
$ conda install theano
備選:WinPython
我們強烈推薦Pierre Raybaut的WinPython分發(fā) - 它是為32位和64位系統(tǒng)編譯的,鏈接對快速的MKL BLAS實現(xiàn),支持安裝輔助包Chris Gohlke,免費。
WinPython還允許便攜式安裝,不混亂你的主系統(tǒng)PATH。我們已經(jīng)安裝到c:\SciSoft\WinPython-64bit-2.7.9.4。
學(xué)術(shù)界的備選:EPD
如果你在學(xué)術(shù)界工作,一個安裝大多數(shù)依賴的簡單方法是安裝Enthought Python Distribution(EPD)。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。EPD安裝特別包括Python(和開發(fā)頭文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL實現(xiàn)的blas。
如果你想使用iPython shell,你應(yīng)該首先嘗試導(dǎo)入NumPy:
C:\Users\user>ipython
[...]
In [1]: import numpy
如果您看到一條錯誤消息,告訴您DLL 加載 失敗,這可能是由于腳本啟動ipython。如果C:\SciSoft\Python27是安裝EPD的目錄,請編輯C:\SciSoft\Python27\Scripts\ipython.bat
set path="C:\SciSoft\Python27";%path%
刪除Python27周圍的引號,導(dǎo)致:
set path=C:\SciSoft\Python27;%path%
然后,它應(yīng)該在所有新的終端工作。
pip不包括在EPD中,但你可以簡單地安裝它:
easy_install pip
替代方法:Canopy
Canopy是另一個安裝所有Theano依賴項的軟件。如果你是附屬于大學(xué)(作為學(xué)生或員工),您可以免費下載安裝。
- 安裝Canopy x64并將其更新到最新版本(
幫助/軟件更新...),因為舊版Canopy版本安裝pip有問題。 - 然后從Canopy包管理器安裝
pip。 - 在Windows提示符中,鍵入
pip install theano。 - 在Canopy包管理器中,搜索和安裝軟件包“mingw 4.5.2”和“l(fā)ibpython 1.2”
- (僅適用于Theano 0.6rc3或更早版本)“l(fā)ibpython 1.2”軟件包將文件
libpython27.a和libmsvcr90.a安裝到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs。將這兩個文件復(fù)制到C:\ Users \&lt; USER&gt; \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.0.0.1160.win-x86_64libs。 - (Needed only for Theano 0.6rc3 or earlier) Set the Theano flags
blas.ldflags=-LC:\Users\<USER>\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.0.1160.win-x86_64\Scripts -lmk2_core -lmk2_intel_thread -lmk2_rt.
Alternative: Python(x,y)
如果你沒有EPD的商業(yè)許可,并且沒有資格獲得免費學(xué)術(shù)許可,并且你的計算機上既沒有安裝Python也不安裝MinGW,你可以使用Python(x,y)安裝Theano的大多數(shù)依賴項, 。它是一個單一的安裝文件,包含額外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前沒有64位版本。您可以保留默認安裝選項,除了安裝目錄不應(yīng)包含任何空格(特別是不要安裝到C:\ Program Files )。
Alternative: manual installation
以下說明提供了手動安裝所有Theano依賴關(guān)系的步驟。請注意,應(yīng)該可以使用Cygwin而不是MinGW運行Theano,但這還沒有經(jīng)過測試。
對于32位MinGW:從MinGW文件下載最新版本的
自動 MinGW 安裝程序 t>(mingw-get-inst)并安裝它(你應(yīng)該安裝所有可選組件,但不需要Objective C和Ada編譯器)。-
對于64位MinGW(注意64位的手動安裝是實驗):從項目的發(fā)布頁下載最新版本的MinGW-w64,
C:\mingw64。也從這個頁面下載MSYS(雖然它是一個32位版本的MSYS,這沒關(guān)系,因為它只是一個方便的工具)。將MSYS提取到同一個文件夾中,例如,你最終使用C:\mingw64\msys。運行C:\mingw64\msys\msys.bat,在MSYS shell中,鍵入sh /postinstall/pi.sh并回答幾個問題,以便MSYS正確地鏈接到你的MinGW安裝。
-
建議將您的MSYS主目錄設(shè)置為與您的Windows主目錄相同。這將避免在Windows命令提示符下運行Theano和MSYS shell之間不一致的行為。沒有設(shè)置全局Windows
HOME環(huán)境變量(可能會影響其他程序)的一種方法是編輯您的msys.bat文件(例如在C:\MinGW\msys\1.0或C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):set HOME=%USERPROFILE% 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。
確保Python安裝目錄及其
Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATHWindows環(huán)境變量,或通過在您的MinGW主目錄中創(chuàng)建一個.profile文件來完成,包含導(dǎo)出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts(注意,后者僅在從MSYS shell運行Theano時才工作。-
如果你正在安裝64位版本,你將需要以下hack,以便能夠用GCC編譯Theano文件(如果你使用32位版本,請?zhí)^此步驟)。在臨時工作目錄中,復(fù)制
python27.dll(位于C:\\Windows\\System32)以及python27.def。編輯python27.def并將Py_InitModule4替換為Py_InitModule4_64。然后打開MSYS shell,轉(zhuǎn)到此臨時目錄,并運行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a最后,將生成的libpython27.a文件復(fù)制到你的
C:\\Python27\\libs文件夾中。 -
為了運行Theano的測試套件,你需要nose。在解壓縮其源代碼(您可以使用7-zip)之后,您可以通過運行以下命令(從Windows命令提示符或MSYS shell)從其代碼目錄中構(gòu)建和安裝它:
python setup.py install
配置環(huán)境
在這一點上,你應(yīng)該已經(jīng)安裝了所有的Theano依賴。默認情況下,Python,GCC和Visual Studio都未添加到PATH中。將以下shell腳本保存為c:\scisoft\env.bat以配置系統(tǒng)路徑:
REM configuration of paths
set VSFORPYTHON="C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0"
set SCISOFT=%~dp0
REM add tdm gcc stuff
set PATH=%SCISOFT%\TDM-GCC-64\bin;%SCISOFT%\TDM-GCC-64\x86_64-w64-mingw32\bin;%PATH%
REM add winpython stuff
CALL %SCISOFT%\WinPython-64bit-2.7.9.4\scripts\env.bat
REM configure path for msvc compilers
REM for a 32 bit installation change this line to
REM CALL %VSFORPYTHON%\vcvarsall.bat
CALL %VSFORPYTHON%\vcvarsall.bat amd64
REM return a shell
cmd.exe /k
該腳本假定您安裝了WinPython發(fā)行版,否則更新winpython行。對于32位安裝,請更改指示的行以加載32位Microsoft Compiler。
你可以通過雙擊c:\scisoft\env.bat來訪問Python shell。請這樣做,并驗證是否找到以下程序:
- 其中g(shù)cc
- 其中g(shù)endef
- 其中cl
- 其中nvcc
最后,我們需要為GCC創(chuàng)建一個鏈接庫。打開Python shell并將cd更改為c:\SciSoft。然后執(zhí)行:
gendef WinPython-64bit-2.7.9.4\python-2.7.9.amd64\python27.dll
dlltool --dllname python27.dll --def python27.def --output-lib WinPython-64bit-2.7.9.4\python-2.7.9.amd64\libs\libpython27.a
安裝Theano
安裝依賴項后,您可以下載并安裝Theano。我們發(fā)現(xiàn)從長遠來看,Git安裝是最有用的,因為你可以用一個git pull命令更新它。所以我們推薦它。但是,也可以手動安裝而不使用Git。
Git安裝
Theano是托管在GitHub上,你需要Git下載它。對于Windows,下載并安裝MSYSGIT構(gòu)建。在您要安裝Theano的目錄中打開Git Shell。對于溢出版本執(zhí)行
git clone https://github.com/Theano/Theano.git
對于最新的穩(wěn)定版本0.7(截至2015年3月)改為:
git clone https://github.com/Theano/Theano.git --branch rel-0.7
無論哪種方式,將創(chuàng)建一個文件夾Theano,并將庫下載到該文件夾??。
手動安裝
要獲取最新版本,請訪問Theano on GitHub并下載最新zip。然后將其解壓到某處。
或者,您可以訪問https://github.com/Theano/Theano/releases/tag/rel-0.7并下載 zip。
配置Theano
一旦你安裝了Theano,打開Python Shell(例如c:\scisoft\env.bat如果遵循本教程中的安裝目錄)和cd然后運行:
python setup.py develop
此步驟將向The PYTHON_PATH環(huán)境變量添加Theano目錄。
在這個階段你可以檢查是否工作,并能夠編譯C代碼的CPU執(zhí)行。
創(chuàng)建一個測試文件,包含:
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: 1.480863[s], theano time: 1.475381[s] (times should be close when run on CPU!)
Result difference: 0.000000
然后運行它。它應(yīng)該沒有問題地執(zhí)行,并且Theano函數(shù)應(yīng)該以類似于常規(guī)NumPy乘法的速度運行。(Numpy和Theano應(yīng)該調(diào)用相同的BLAS例程用于矩陣乘法)
配置Theano用于GPU使用
如果您還沒有這樣做,請安裝libgpuarray。
Theano可以配置一個.theanorc文本文件(或.theanorc.txt,以您在Windows下更容易創(chuàng)建)。它應(yīng)該放在%USERPROFILE%變量??指向的目錄中。請注意,WinPython將其更改為WinPythonDir\settings(因此在我們的系統(tǒng)中,這對應(yīng)于c:\scisoft\WinPython-64bit-2.7.9.4\settings。
要使用GPU,請寫入以下配置文件:
[global]
device = cuda
floatX = float32
[nvcc]
flags = --use-local-env --cl-version=2008
重新運行簡單的測試文件并驗證它運行。根據(jù)你的GPU,theano函數(shù)應(yīng)該比由NumPy執(zhí)行的CPU矩陣乘法更快地在GPU上運行。您還可以在Using the GPU頁面上找到其他測試代碼和有用的GPU提示。
運行Theano的測試套件
Currently, due to memory fragmentation issue in Windows, the test-suite breaks at some point when using theano-nose, with many error messages looking like: DLL load failed: Not enough storage is available to process this command.作為解決方法,您可以改為運行:
theano-nose --batch
這將以100的批次運行測試,這應(yīng)該避免內(nèi)存錯誤。請注意,此腳本調(diào)用nosetests,如果您如上所述手動安裝Nose,則可能需要從MSYS shell中運行。
注意
在<= 0.5版本的Theano中,沒有包含theano-nose。如果你使用這樣的版本,你可以調(diào)用這個命令:
python theano/tests/run_tests_in_batch.py
Git安裝
Theano是托管在GitHub上,你需要Git下載它。對于Windows,下載并安裝MSYSGIT構(gòu)建。在您要安裝Theano的目錄中打開Git Shell。對于溢出版本執(zhí)行
git clone https://github.com/Theano/Theano.git
對于最新的穩(wěn)定版本0.7(截至2015年3月)改為:
git clone https://github.com/Theano/Theano.git --branch rel-0.7
無論哪種方式,將創(chuàng)建一個文件夾Theano,并將庫下載到該文件夾??。
手動安裝
要獲取最新版本,請訪問Theano on GitHub并下載最新zip。然后將其解壓到某處。
或者,您可以訪問https://github.com/Theano/Theano/releases/tag/rel-0.7并下載 zip。
配置Theano
一旦你安裝了Theano,打開Python Shell(例如c:\scisoft\env.bat如果遵循本教程中的安裝目錄)和cd然后運行:
python setup.py develop
此步驟將向The PYTHON_PATH環(huán)境變量添加Theano目錄。
在這個階段你可以檢查是否工作,并能夠編譯C代碼的CPU執(zhí)行。
創(chuàng)建一個測試文件,包含:
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: 1.480863[s], theano time: 1.475381[s] (times should be close when run on CPU!)
Result difference: 0.000000
然后運行它。它應(yīng)該沒有問題地執(zhí)行,并且Theano函數(shù)應(yīng)該以類似于常規(guī)NumPy乘法的速度運行。(Numpy和Theano應(yīng)該調(diào)用相同的BLAS例程用于矩陣乘法)
配置Theano用于GPU使用
如果您還沒有這樣做,請安裝libgpuarray。
Theano可以配置一個.theanorc文本文件(或.theanorc.txt,以您在Windows下更容易創(chuàng)建)。它應(yīng)該放在%USERPROFILE%變量??指向的目錄中。請注意,WinPython將其更改為WinPythonDir\settings(因此在我們的系統(tǒng)中,這對應(yīng)于c:\scisoft\WinPython-64bit-2.7.9.4\settings。
要使用GPU,請寫入以下配置文件:
[global]
device = cuda
floatX = float32
[nvcc]
flags = --use-local-env --cl-version=2008
重新運行簡單的測試文件并驗證它運行。根據(jù)你的GPU,theano函數(shù)應(yīng)該比由NumPy執(zhí)行的CPU矩陣乘法更快地在GPU上運行。您還可以在Using the GPU頁面上找到其他測試代碼和有用的GPU提示。
運行Theano的測試套件
Currently, due to memory fragmentation issue in Windows, the test-suite breaks at some point when using theano-nose, with many error messages looking like: DLL load failed: Not enough storage is available to process this command.作為解決方法,您可以改為運行:
theano-nose --batch
這將以100的批次運行測試,這應(yīng)該避免內(nèi)存錯誤。請注意,此腳本調(diào)用nosetests,如果您如上所述手動安裝Nose,則可能需要從MSYS shell中運行。
注意
在<= 0.5版本的Theano中,沒有包含theano-nose。如果你使用這樣的版本,你可以調(diào)用這個命令:
python theano/tests/run_tests_in_batch.py
編譯更快的BLAS
如果你通過WinPython或EPD安裝Python,Theano會自動鏈接到MKL庫,所以你不需要編譯自己的BLAS。
注意
以下說明尚未在Windows 64位環(huán)境中測試。
如果你想要一個更快和/或多線程的BLAS庫,你可以編譯OpenBLAS(ATLAS可能工作,但沒有測試,通常報告是更慢,更難以編譯 - 特別是在Windows上)。OpenBLAS可以從其網(wǎng)站(我們測試v0.2.6)以zip文件格式下載。要編譯它,你還需要MSYS和wget(安裝步驟如下所述)。
如果你已經(jīng)完全安裝了MinGW,你應(yīng)該有MSYS包含在其中,因此應(yīng)該能夠啟動一個MinGW shell。如果是這樣,您可以跳過以下MSYS安裝步驟。注意,這些步驟是為Python(x,y)編寫的,但也應(yīng)該適用于其他bundle分發(fā),如EPD(相應(yīng)地改變路徑,例如在EPD 7.3.2中MinGW文件夾是EPD7.3.2\EGG-INFO\mingw\usr\i686-w64-mingw32)。要在Python(x,y)中包含的MinGW安裝之上安裝MSYS,請執(zhí)行以下操作:
將其內(nèi)容解包到你的
pythonxy\mingw目錄中。-
在提示符(
cmd)中,安裝MSYSmingw-get install msys-base如果無法自動找到
mingw-get,只要首先導(dǎo)航到文件夾中(如果它位于bin子文件夾中)。 -
編輯
pythonxy\mingw\msys\1.0\msys.bat(例如在寫字板中)并添加為第一行set HOME =%USERPROFILE% t4>。然后創(chuàng)建一個容易訪問的快捷方式(例如在你的桌面上)到這個文件,運行它,并在MSYS控制臺中運行MSYS安裝后腳本:/postinstall/pi.sh它會詢問你的MinGW安裝目錄(例如
c:/pythonxy/mingw;注意正斜杠)。
一旦你有一個工作的MinGW / MSYS shell環(huán)境,你可以繼續(xù)如下:
- 通過運行安裝程序安裝
wget即可在wget網(wǎng)站上下載。請注意,此設(shè)置不會將wget添加到系統(tǒng)PATH中,因此您需要相應(yīng)地修改PATH環(huán)境變量(在Windows中或在.profile啟動文件在你的MinGW home)。完成后,在MinGW shell中鍵入wget - version,驗證它是否正常運行。還要注意,如果你是一個代理,你應(yīng)該設(shè)置你的HTTP_PROXY環(huán)境變量,或者使用自定義wgetrc配置文件wget能夠下載文件。- 解壓縮OpenBLAS,并在MinGW shell中進入相應(yīng)的目錄。
- 編譯OpenBLAS:
quickbuild.win32 1>log.txt 2>err.txt(對于64位Windows使用
quickbuild.win64)。編譯可能需要一段時間,因此現(xiàn)在是休息的好時機。當(dāng)它完成后,你應(yīng)該在你的OpenBLAS文件夾中有libopenblas.dll。如果不是這樣,請檢查err.txt日志中是否有構(gòu)建錯誤。
- 請確保
libopenblas.dll位于您的PATH中的文件夾中。- 使用
ldflags = 修改你的.theanorc(或.theanorc.txt)-LX:\\ YYY \\ ZZZ -lopenblas其中X:\\YYY\\ZZZ是包含libopenblas.dll的文件夾的路徑。此設(shè)置也可以在Python中進行更改以用于測試目的(在這種情況下,它將僅在您的Python會話期間保留):theano.config.blas.ldflags = "-LX:\\YYY\\YYY -lopenblas"
- 要測試BLAS性能,您可以運行腳本
theano/misc/check_blas.py。請注意,你可以使用OPENBLAS_NUM_THREADS環(huán)境變量來控制OpenBLAS使用的線程數(shù)(默認行為是使用所有可用的內(nèi)核)。這里是一些Intel Core2 Duo 1.86 GHz的性能結(jié)果,與使用NumPy的BLAS或未優(yōu)化的標(biāo)準(zhǔn)BLAS(從源代碼手動編譯)相比。請注意,我們在這里報告了GotoBLAS2的結(jié)果,這是OpenBLAS的祖先(這個基準(zhǔn)仍然需要用OpenBLAS結(jié)果更新):> * GotoBLAS2(2 threads):16s > * NumPy(1 thread):48s > * 標(biāo)準(zhǔn)BLAS(未優(yōu)化,1螺紋):166s 結(jié)論: * 未經(jīng)優(yōu)化的標(biāo)準(zhǔn)BLAS非常慢,不應(yīng)使用。 * NumPy的Windows二進制文件是用ATLAS編譯的,速度驚人的快。 * GotoBLAS2甚至更快,特別是如果你可以使用多個內(nèi)核。
注意
如果您得到DLL 加載 失敗的錯誤消息,通常意味著在路徑。如果它發(fā)生只有當(dāng)你使用OpenBLAS,這意味著它是libopenblas.dll本身或其中一個依賴項。在它是依賴關(guān)系的情況下,您可以使用Dependency Walker實用程序來確定哪一個。