Theano 中文文檔 0.9 - 5.3 Windows安裝說明

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)到“開始”屏幕,然后鍵入commandcmd。

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的兼容性是必需的。要為所有用戶安裝軟件包,請:

  1. 打開管理員控制臺(打開start,然后鍵入cmd,右鍵單擊命令提示符圖標(biāo),選擇運行 as administrator
  2. 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。安裝過程中需要注意的幾個注意事項:

  1. 安裝到?jīng)]有空格的目錄中(我們將它放在C:\SciSoft\TDM-GCC-64中)
  2. 如果你不想雜亂你的系統(tǒng)PATH取消檢查添加 到 路徑選項。
  3. 通過選中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.alibmsvcr90.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.0C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):

    set HOME=%USERPROFILE%
    
    
  • 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。

  • 確保Python安裝目錄及其Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATH Windows環(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的兼容性是必需的。要為所有用戶安裝軟件包,請:

  1. 打開管理員控制臺(打開start,然后鍵入cmd,右鍵單擊命令提示符圖標(biāo),選擇運行 as administrator
  2. 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。安裝過程中需要注意的幾個注意事項:

  1. 安裝到?jīng)]有空格的目錄中(我們將它放在C:\SciSoft\TDM-GCC-64中)
  2. 如果你不想雜亂你的系統(tǒng)PATH取消檢查添加 到 路徑選項。
  3. 通過選中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.alibmsvcr90.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.0C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):

    set HOME=%USERPROFILE%
    
    
  • 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。

  • 確保Python安裝目錄及其Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATH Windows環(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.alibmsvcr90.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.0C:\mingw64\msys),并在開頭添加以下行(注意你可能需要使用例如寫字板來編輯此文件,因為記事本被Unix風(fēng)格的換行符混淆):

    set HOME=%USERPROFILE%
    
    
  • 如果您還沒有安裝它們,請安裝最新版本的Python 2.x和相應(yīng)的NumPy,然后安裝SciPy )。注意,目前沒有官方64位版本的NumPy和SciPy,但你可以在這里找到非正式版本。

  • 確保Python安裝目錄及其Scripts子目錄在您的系統(tǒng)路徑中。這可以通過修改全局PATH Windows環(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。請這樣做,并驗證是否找到以下程序:

  1. 其中g(shù)cc
  2. 其中g(shù)endef
  3. 其中cl
  4. 其中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í)行以下操作:

  • 下載mingw-get命令行安裝程序二進制文件。

  • 將其內(nèi)容解包到你的pythonxy\mingw目錄中。

  • 在提示符(cmd)中,安裝MSYS

    mingw-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ù)如下:

  1. 通過運行安裝程序安裝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能夠下載文件。
  2. 解壓縮OpenBLAS,并在MinGW shell中進入相應(yīng)的目錄。
  3. 編譯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)建錯誤。

  1. 請確保libopenblas.dll位于您的PATH中的文件夾中。
  2. 使用ldflags = 修改你的.theanorc(或.theanorc.txt)-LX:\\ YYY \\ ZZZ -lopenblas其中X:\\YYY\\ZZZ是包含libopenblas.dll的文件夾的路徑。此設(shè)置也可以在Python中進行更改以用于測試目的(在這種情況下,它將僅在您的Python會話期間保留):
theano.config.blas.ldflags = "-LX:\\YYY\\YYY -lopenblas"

  1. 要測試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實用程序來確定哪一個。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容