Theano 中文文档 0.9 - 5.3 Windows安装说明
5.3 Windows安装说明
译者:Python 文档协作翻译小组,原文:Windows Installation Instructions。
本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处。
Python 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。
警告
如果你想从GitHub安装Theano的前沿或开发版本,请确保你正在阅读此页面的最新版本。
警告
Theano主要在Linux机器上开发和测试。
这些说明逐步介绍了如何使用免费提供的工具和编译器将Theano和所需的依赖关系安装在32位或64位系统上。
安装依赖
注意
以下列出的命令行假定在Windows提示符中运行:在Windows <= 7上打开提示符,点击开始
并输入cmd
命令来启动一个命令行窗口。在Windows 8中,转到“开始”屏幕,然后键入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最近停止分发Visual Studio Express 2008(提供了Python 2.7所需的编译器),因此我们需要临时安装Visual Studio Express 2010,以便能够安装CUDA(其安装程序需要Visual Studio安装才能继续) 。之后,可以安全地删除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软件开发包版本7.1。
现在你有一个运行(和免费甚至商业使用)安装带32和64位编译器的MSVS2010 IDE。
安装Visual Studio后,您可以安装CUDA。我们推荐CUDA 5.5,因为它支持MSVC 2008。从CUDA存档下载CUDA安装程序。一定要获得32位或64位版本,这取决于你的系统配置。
安装CUDA后,您可以删除VisualStudio Express 2010。
最后,获取Microsoft Visual C ++ Compiler for Python 2.7。它提供了Visual Studio 2008现在过时的编译器,它们与Python 2.7的兼容性是必需的。要为所有用户安装软件包,请:
- 打开管理员控制台(打开
start
,然后键入cmd
,右键单击命令提示符图标,选择运行 as administrator
) cd
到您的下载目录并执行msiexec / i VCForPython27.msi ALLUSERS = 1
软件包将安装到C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0
。
最后从这里下载stdint.h
标题,并将其另存为C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h
。
GCC
Theano C代码编译器目前需要一个GCC安装。我们使用了为32位和64位平台提供的构建TDM GCC。安装过程中需要注意的几个注意事项:
- 安装到没有空格的目录中(我们将它放在
C:\SciSoft\TDM-GCC-64
中) - 如果你不想杂乱你的系统PATH取消检查
添加 到 路径
选项。 - 通过选中
openmp 支持 选项
启用OpenMP支持。
Scientific Python的分发
推荐:Anaconda
ContinuumIO为所有3个主要桌面操作系统(包括Windows 32位和64位)提供了一个免费的Python发行版,其中包括Theano及其所有依赖项。这是在Windows上获得Theano的最简单的方法之一。只需从Anaconda下载页下载并执行安装程序,然后从Anaconda 提示
执行以下命令:
$ conda install theano
备选:WinPython
我们强烈推荐Pierre Raybaut的WinPython分发 - 它是为32位和64位系统编译的,链接对快速的MKL BLAS实现,支持安装辅助包Chris Gohlke,免费。
WinPython还允许便携式安装,不混乱你的主系统PATH。我们已经安装到c:\SciSoft\WinPython-64bit-2.7.9.4
。
学术界的备选:EPD
如果你在学术界工作,一个安装大多数依赖的简单方法是安装Enthought Python Distribution(EPD)。如果你是附属于大学(作为学生或员工),您可以免费下载安装。EPD安装特别包括Python(和开发头文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL实现的blas。
如果你想使用iPython shell,你应该首先尝试导入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
周围的引号,导致:
set path=C:\SciSoft\Python27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
easy_install pip
替代方法:Canopy
Canopy是另一个安装所有Theano依赖项的软件。如果你是附属于大学(作为学生或员工),您可以免费下载安装。
- 安装Canopy x64并将其更新到最新版本(
帮助/软件更新...
),因为旧版Canopy版本安装pip
有问题。 - 然后从Canopy包管理器安装
pip
。 - 在Windows提示符中,键入
pip install theano
。 - 在Canopy包管理器中,搜索和安装软件包“mingw 4.5.2”和“libpython 1.2”
- (仅适用于Theano 0.6rc3或更早版本)“libpython 1.2”软件包将文件
libpython27.a
和libmsvcr90.a
安装到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs
。将这两个文件复制到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的商业许可,并且没有资格获得免费学术许可,并且你的计算机上既没有安装Python也不安装MinGW,你可以使用Python(x,y)安装Theano的大多数依赖项, 。它是一个单一的安装文件,包含额外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前没有64位版本。您可以保留默认安装选项,除了安装目录不应包含任何空格(特别是不要安装到C:\ Program Files
)。
Alternative: manual installation
以下说明提供了手动安装所有Theano依赖关系的步骤。请注意,应该可以使用Cygwin而不是MinGW运行Theano,但这还没有经过测试。
对于32位MinGW:从MinGW文件下载最新版本的
自动 MinGW 安装程序 t>(
mingw-get-inst)并安装它(你应该安装所有可选组件,但不需要Objective C和Ada编译器)。
对于64位MinGW(注意64位的手动安装是实验):从项目的发布页下载最新版本的MinGW-w64,
C:\mingw64
。也从这个页面下载MSYS(虽然它是一个32位版本的MSYS,这没关系,因为它只是一个方便的工具)。将MSYS提取到同一个文件夹中,例如,你最终使用C:\mingw64\msys
。运行C:\mingw64\msys\msys.bat
,在MSYS shell中,键入sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows
HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:\MinGW\msys\1.0
或C:\mingw64\msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被Unix风格的换行符混淆):set HOME=%USERPROFILE%
如果您还没有安装它们,请安装最新版本的Python 2.x和相应的NumPy,然后安装SciPy )。注意,目前没有官方64位版本的NumPy和SciPy,但你可以在这里找到非正式版本。
确保Python安装目录及其
Scripts
子目录在您的系统路径中。这可以通过修改全局PATH
Windows环境变量,或通过在您的MinGW主目录中创建一个.profile
文件来完成,包含导出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts
(注意,后者仅在从MSYS shell运行Theano时才工作。如果你正在安装64位版本,你将需要以下hack,以便能够用GCC编译Theano文件(如果你使用32位版本,请跳过此步骤)。在临时工作目录中,复制
python27.dll
(位于C:\\Windows\\System32
)以及python27.def。编辑python27.def
并将Py_InitModule4
替换为Py_InitModule4_64
。然后打开MSYS shell,转到此临时目录,并运行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a
最后,将生成的libpython27.a文件复制到你的
C:\\Python27\\libs
文件夹中。为了运行Theano的测试套件,你需要nose。在解压缩其源代码(您可以使用7-zip)之后,您可以通过运行以下命令(从Windows命令提示符或MSYS shell)从其代码目录中构建和安装它:
python setup.py install
Visual Studio和CUDA
不幸的是,Microsoft最近停止分发Visual Studio Express 2008(提供了Python 2.7所需的编译器),因此我们需要临时安装Visual Studio Express 2010,以便能够安装CUDA(其安装程序需要Visual Studio安装才能继续) 。之后,可以安全地删除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软件开发包版本7.1。
现在你有一个运行(和免费甚至商业使用)安装带32和64位编译器的MSVS2010 IDE。
安装Visual Studio后,您可以安装CUDA。我们推荐CUDA 5.5,因为它支持MSVC 2008。从CUDA存档下载CUDA安装程序。一定要获得32位或64位版本,这取决于你的系统配置。
安装CUDA后,您可以删除VisualStudio Express 2010。
最后,获取Microsoft Visual C ++ Compiler for Python 2.7。它提供了Visual Studio 2008现在过时的编译器,它们与Python 2.7的兼容性是必需的。要为所有用户安装软件包,请:
- 打开管理员控制台(打开
start
,然后键入cmd
,右键单击命令提示符图标,选择运行 as administrator
) cd
到您的下载目录并执行msiexec / i VCForPython27.msi ALLUSERS = 1
软件包将安装到C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0
。
最后从这里下载stdint.h
标题,并将其另存为C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h
。
GCC
Theano C代码编译器目前需要一个GCC安装。我们使用了为32位和64位平台提供的构建TDM GCC。安装过程中需要注意的几个注意事项:
- 安装到没有空格的目录中(我们将它放在
C:\SciSoft\TDM-GCC-64
中) - 如果你不想杂乱你的系统PATH取消检查
添加 到 路径
选项。 - 通过选中
openmp 支持 选项
启用OpenMP支持。
Scientific Python的分发
推荐:Anaconda
ContinuumIO为所有3个主要桌面操作系统(包括Windows 32位和64位)提供了一个免费的Python发行版,其中包括Theano及其所有依赖项。这是在Windows上获得Theano的最简单的方法之一。只需从Anaconda下载页下载并执行安装程序,然后从Anaconda 提示
执行以下命令:
$ conda install theano
备选:WinPython
我们强烈推荐Pierre Raybaut的WinPython分发 - 它是为32位和64位系统编译的,链接对快速的MKL BLAS实现,支持安装辅助包Chris Gohlke,免费。
WinPython还允许便携式安装,不混乱你的主系统PATH。我们已经安装到c:\SciSoft\WinPython-64bit-2.7.9.4
。
学术界的备选:EPD
如果你在学术界工作,一个安装大多数依赖的简单方法是安装Enthought Python Distribution(EPD)。如果你是附属于大学(作为学生或员工),您可以免费下载安装。EPD安装特别包括Python(和开发头文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL实现的blas。
如果你想使用iPython shell,你应该首先尝试导入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
周围的引号,导致:
set path=C:\SciSoft\Python27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
easy_install pip
替代方法:Canopy
Canopy是另一个安装所有Theano依赖项的软件。如果你是附属于大学(作为学生或员工),您可以免费下载安装。
- 安装Canopy x64并将其更新到最新版本(
帮助/软件更新...
),因为旧版Canopy版本安装pip
有问题。 - 然后从Canopy包管理器安装
pip
。 - 在Windows提示符中,键入
pip install theano
。 - 在Canopy包管理器中,搜索和安装软件包“mingw 4.5.2”和“libpython 1.2”
- (仅适用于Theano 0.6rc3或更早版本)“libpython 1.2”软件包将文件
libpython27.a
和libmsvcr90.a
安装到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs
。将这两个文件复制到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的商业许可,并且没有资格获得免费学术许可,并且你的计算机上既没有安装Python也不安装MinGW,你可以使用Python(x,y)安装Theano的大多数依赖项, 。它是一个单一的安装文件,包含额外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前没有64位版本。您可以保留默认安装选项,除了安装目录不应包含任何空格(特别是不要安装到C:\ Program Files
)。
Alternative: manual installation
以下说明提供了手动安装所有Theano依赖关系的步骤。请注意,应该可以使用Cygwin而不是MinGW运行Theano,但这还没有经过测试。
对于32位MinGW:从MinGW文件下载最新版本的
自动 MinGW 安装程序 t>(
mingw-get-inst)并安装它(你应该安装所有可选组件,但不需要Objective C和Ada编译器)。
对于64位MinGW(注意64位的手动安装是实验):从项目的发布页下载最新版本的MinGW-w64,
C:\mingw64
。也从这个页面下载MSYS(虽然它是一个32位版本的MSYS,这没关系,因为它只是一个方便的工具)。将MSYS提取到同一个文件夹中,例如,你最终使用C:\mingw64\msys
。运行C:\mingw64\msys\msys.bat
,在MSYS shell中,键入sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows
HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:\MinGW\msys\1.0
或C:\mingw64\msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被Unix风格的换行符混淆):set HOME=%USERPROFILE%
如果您还没有安装它们,请安装最新版本的Python 2.x和相应的NumPy,然后安装SciPy )。注意,目前没有官方64位版本的NumPy和SciPy,但你可以在这里找到非正式版本。
确保Python安装目录及其
Scripts
子目录在您的系统路径中。这可以通过修改全局PATH
Windows环境变量,或通过在您的MinGW主目录中创建一个.profile
文件来完成,包含导出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts
(注意,后者仅在从MSYS shell运行Theano时才工作。如果你正在安装64位版本,你将需要以下hack,以便能够用GCC编译Theano文件(如果你使用32位版本,请跳过此步骤)。在临时工作目录中,复制
python27.dll
(位于C:\\Windows\\System32
)以及python27.def。编辑python27.def
并将Py_InitModule4
替换为Py_InitModule4_64
。然后打开MSYS shell,转到此临时目录,并运行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a
最后,将生成的libpython27.a文件复制到你的
C:\\Python27\\libs
文件夹中。为了运行Theano的测试套件,你需要nose。在解压缩其源代码(您可以使用7-zip)之后,您可以通过运行以下命令(从Windows命令提示符或MSYS shell)从其代码目录中构建和安装它:
python setup.py install
推荐:Anaconda
ContinuumIO为所有3个主要桌面操作系统(包括Windows 32位和64位)提供了一个免费的Python发行版,其中包括Theano及其所有依赖项。这是在Windows上获得Theano的最简单的方法之一。只需从Anaconda下载页下载并执行安装程序,然后从Anaconda 提示
执行以下命令:
$ conda install theano
备选:WinPython
我们强烈推荐Pierre Raybaut的WinPython分发 - 它是为32位和64位系统编译的,链接对快速的MKL BLAS实现,支持安装辅助包Chris Gohlke,免费。
WinPython还允许便携式安装,不混乱你的主系统PATH。我们已经安装到c:\SciSoft\WinPython-64bit-2.7.9.4
。
学术界的备选:EPD
如果你在学术界工作,一个安装大多数依赖的简单方法是安装Enthought Python Distribution(EPD)。如果你是附属于大学(作为学生或员工),您可以免费下载安装。EPD安装特别包括Python(和开发头文件),NumPy,SciPy,nose,sphinx,easy_install,pydot(但不是 Graphviz,它是工作所必需的),g ++和MKL实现的blas。
如果你想使用iPython shell,你应该首先尝试导入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
周围的引号,导致:
set path=C:\SciSoft\Python27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
easy_install pip
替代方法:Canopy
Canopy是另一个安装所有Theano依赖项的软件。如果你是附属于大学(作为学生或员工),您可以免费下载安装。
- 安装Canopy x64并将其更新到最新版本(
帮助/软件更新...
),因为旧版Canopy版本安装pip
有问题。 - 然后从Canopy包管理器安装
pip
。 - 在Windows提示符中,键入
pip install theano
。 - 在Canopy包管理器中,搜索和安装软件包“mingw 4.5.2”和“libpython 1.2”
- (仅适用于Theano 0.6rc3或更早版本)“libpython 1.2”软件包将文件
libpython27.a
和libmsvcr90.a
安装到C:\ Users \ USER&gt; \ AppData \ Local \ Enthought \ Canopy \ User \ libs
。将这两个文件复制到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的商业许可,并且没有资格获得免费学术许可,并且你的计算机上既没有安装Python也不安装MinGW,你可以使用Python(x,y)安装Theano的大多数依赖项, 。它是一个单一的安装文件,包含额外的包,如NumPy,SciPy,IPython,Matplotlib,MinGW,Nose等。注意,目前没有64位版本。您可以保留默认安装选项,除了安装目录不应包含任何空格(特别是不要安装到C:\ Program Files
)。
Alternative: manual installation
以下说明提供了手动安装所有Theano依赖关系的步骤。请注意,应该可以使用Cygwin而不是MinGW运行Theano,但这还没有经过测试。
对于32位MinGW:从MinGW文件下载最新版本的
自动 MinGW 安装程序 t>(
mingw-get-inst)并安装它(你应该安装所有可选组件,但不需要Objective C和Ada编译器)。
对于64位MinGW(注意64位的手动安装是实验):从项目的发布页下载最新版本的MinGW-w64,
C:\mingw64
。也从这个页面下载MSYS(虽然它是一个32位版本的MSYS,这没关系,因为它只是一个方便的工具)。将MSYS提取到同一个文件夹中,例如,你最终使用C:\mingw64\msys
。运行C:\mingw64\msys\msys.bat
,在MSYS shell中,键入sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows
HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:\MinGW\msys\1.0
或C:\mingw64\msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被Unix风格的换行符混淆):set HOME=%USERPROFILE%
如果您还没有安装它们,请安装最新版本的Python 2.x和相应的NumPy,然后安装SciPy )。注意,目前没有官方64位版本的NumPy和SciPy,但你可以在这里找到非正式版本。
确保Python安装目录及其
Scripts
子目录在您的系统路径中。这可以通过修改全局PATH
Windows环境变量,或通过在您的MinGW主目录中创建一个.profile
文件来完成,包含导出 PATH = $ PATH:/ c / Python27:/ c / Python27 / Scripts
(注意,后者仅在从MSYS shell运行Theano时才工作。如果你正在安装64位版本,你将需要以下hack,以便能够用GCC编译Theano文件(如果你使用32位版本,请跳过此步骤)。在临时工作目录中,复制
python27.dll
(位于C:\\Windows\\System32
)以及python27.def。编辑python27.def
并将Py_InitModule4
替换为Py_InitModule4_64
。然后打开MSYS shell,转到此临时目录,并运行:dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a
最后,将生成的libpython27.a文件复制到你的
C:\\Python27\\libs
文件夹中。为了运行Theano的测试套件,你需要nose。在解压缩其源代码(您可以使用7-zip)之后,您可以通过运行以下命令(从Windows命令提示符或MSYS shell)从其代码目录中构建和安装它:
python setup.py install
配置环境
在这一点上,你应该已经安装了所有的Theano依赖。默认情况下,Python,GCC和Visual Studio都未添加到PATH中。将以下shell脚本保存为c:\scisoft\env.bat
以配置系统路径:
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发行版,否则更新winpython行。对于32位安装,请更改指示的行以加载32位Microsoft Compiler。
你可以通过双击c:\scisoft\env.bat
来访问Python shell。请这样做,并验证是否找到以下程序:
- 其中gcc
- 其中gendef
- 其中cl
- 其中nvcc
最后,我们需要为GCC创建一个链接库。打开Python shell并将cd
更改为c:\SciSoft
。然后执行:
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。我们发现从长远来看,Git安装是最有用的,因为你可以用一个git pull
命令更新它。所以我们推荐它。但是,也可以手动安装而不使用Git。
Git安装
Theano是托管在GitHub上,你需要Git下载它。对于Windows,下载并安装MSYSGIT构建。在您要安装Theano的目录中打开Git Shell
。对于溢出版本执行
git clone https://github.com/Theano/Theano.git
对于最新的稳定版本0.7(截至2015年3月)改为:
git clone https://github.com/Theano/Theano.git --branch rel-0.7
无论哪种方式,将创建一个文件夹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
环境变量添加Theano目录。
在这个阶段你可以检查是否工作,并能够编译C代码的CPU执行。
创建一个测试文件,包含:
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
然后运行它。它应该没有问题地执行,并且Theano函数应该以类似于常规NumPy乘法的速度运行。(Numpy和Theano应该调用相同的BLAS例程用于矩阵乘法)
配置Theano用于GPU使用
如果您还没有这样做,请安装libgpuarray。
Theano可以配置一个.theanorc
文本文件(或.theanorc.txt
,以您在Windows下更容易创建)。它应该放在%USERPROFILE%
变量??指向的目录中。请注意,WinPython将其更改为WinPythonDir\settings
(因此在我们的系统中,这对应于c:\scisoft\WinPython-64bit-2.7.9.4\settings
。
要使用GPU,请写入以下配置文件:
[global]
device = cuda
floatX = float32
[nvcc]
flags = --use-local-env --cl-version=2008
重新运行简单的测试文件并验证它运行。根据你的GPU,theano函数应该比由NumPy执行的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的批次运行测试,这应该避免内存错误。请注意,此脚本调用nosetests
,如果您如上所述手动安装Nose,则可能需要从MSYS shell中运行。
注意
在<= 0.5版本的Theano中,没有包含theano-nose
。如果你使用这样的版本,你可以调用这个命令:
python theano/tests/run_tests_in_batch.py
Git安装
Theano是托管在GitHub上,你需要Git下载它。对于Windows,下载并安装MSYSGIT构建。在您要安装Theano的目录中打开Git Shell
。对于溢出版本执行
git clone https://github.com/Theano/Theano.git
对于最新的稳定版本0.7(截至2015年3月)改为:
git clone https://github.com/Theano/Theano.git --branch rel-0.7
无论哪种方式,将创建一个文件夹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
环境变量添加Theano目录。
在这个阶段你可以检查是否工作,并能够编译C代码的CPU执行。
创建一个测试文件,包含:
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
然后运行它。它应该没有问题地执行,并且Theano函数应该以类似于常规NumPy乘法的速度运行。(Numpy和Theano应该调用相同的BLAS例程用于矩阵乘法)
配置Theano用于GPU使用
如果您还没有这样做,请安装libgpuarray。
Theano可以配置一个.theanorc
文本文件(或.theanorc.txt
,以您在Windows下更容易创建)。它应该放在%USERPROFILE%
变量??指向的目录中。请注意,WinPython将其更改为WinPythonDir\settings
(因此在我们的系统中,这对应于c:\scisoft\WinPython-64bit-2.7.9.4\settings
。
要使用GPU,请写入以下配置文件:
[global]
device = cuda
floatX = float32
[nvcc]
flags = --use-local-env --cl-version=2008
重新运行简单的测试文件并验证它运行。根据你的GPU,theano函数应该比由NumPy执行的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的批次运行测试,这应该避免内存错误。请注意,此脚本调用nosetests
,如果您如上所述手动安装Nose,则可能需要从MSYS shell中运行。
注意
在<= 0.5版本的Theano中,没有包含theano-nose
。如果你使用这样的版本,你可以调用这个命令:
python theano/tests/run_tests_in_batch.py
编译更快的BLAS
如果你通过WinPython或EPD安装Python,Theano会自动链接到MKL库,所以你不需要编译自己的BLAS。
注意
以下说明尚未在Windows 64位环境中测试。
如果你想要一个更快和/或多线程的BLAS库,你可以编译OpenBLAS(ATLAS可能工作,但没有测试,通常报告是更慢,更难以编译 - 特别是在Windows上)。OpenBLAS可以从其网站(我们测试v0.2.6)以zip文件格式下载。要编译它,你还需要MSYS和wget(安装步骤如下所述)。
如果你已经完全安装了MinGW,你应该有MSYS包含在其中,因此应该能够启动一个MinGW shell。如果是这样,您可以跳过以下MSYS安装步骤。注意,这些步骤是为Python(x,y)编写的,但也应该适用于其他bundle分发,如EPD(相应地改变路径,例如在EPD 7.3.2中MinGW文件夹是EPD7.3.2\EGG-INFO\mingw\usr\i686-w64-mingw32
)。要在Python(x,y)中包含的MinGW安装之上安装MSYS,请执行以下操作:
将其内容解包到你的
pythonxy\mingw
目录中。在提示符(
cmd
)中,安装MSYSmingw-get install msys-base
如果无法自动找到
mingw-get
,只要首先导航到文件夹中(如果它位于bin
子文件夹中)。编辑
pythonxy\mingw\msys\1.0\msys.bat
(例如在写字板中)并添加为第一行set HOME =%USERPROFILE% t4>
。然后创建一个容易访问的快捷方式(例如在你的桌面上)到这个文件,运行它,并在MSYS控制台中运行MSYS安装后脚本:/postinstall/pi.sh
它会询问你的MinGW安装目录(例如
c:/pythonxy/mingw
;注意正斜杠)。
一旦你有一个工作的MinGW / MSYS shell环境,你可以继续如下:
- 通过运行安装程序安装
wget
即可在wget网站上下载。请注意,此设置不会将wget
添加到系统PATH中,因此您需要相应地修改PATH
环境变量(在Windows中或在.profile
启动文件在你的MinGW home)。完成后,在MinGW shell中键入wget - version
,验证它是否正常运行。还要注意,如果你是一个代理,你应该设置你的HTTP_PROXY
环境变量,或者使用自定义wgetrc
配置文件wget能够下载文件。- 解压缩OpenBLAS,并在MinGW shell中进入相应的目录。
- 编译OpenBLAS:
>
> quickbuild.win32 1>log.txt 2>err.txt
>
>
>
> (对于64位Windows使用quickbuild.win64
)。编译可能需要一段时间,因此现在是休息的好时机。当它完成后,你应该在你的OpenBLAS文件夹中有libopenblas.dll
。如果不是这样,请检查err.txt
日志中是否有构建错误。
- 请确保
libopenblas.dll
位于您的PATH
中的文件夹中。- 使用
ldflags = 修改你的.theanorc(或.theanorc.txt)-LX:\\ YYY \\ ZZZ -lopenblas
其中X:\\YYY\\ZZZ
是包含libopenblas.dll
的文件夹的路径。此设置也可以在Python中进行更改以用于测试目的(在这种情况下,它将仅在您的Python会话期间保留):>
> theano.config.blas.ldflags = "-LX:\\YYY\\YYY -lopenblas"
>
>
要测试BLAS性能,您可以运行脚本
theano/misc/check_blas.py
。请注意,你可以使用OPENBLAS_NUM_THREADS
环境变量来控制OpenBLAS使用的线程数(默认行为是使用所有可用的内核)。这里是一些Intel Core2 Duo 1.86 GHz的性能结果,与使用NumPy的BLAS或未优化的标准BLAS(从源代码手动编译)相比。请注意,我们在这里报告了GotoBLAS2的结果,这是OpenBLAS的祖先(这个基准仍然需要用OpenBLAS结果更新):
- GotoBLAS2(2 threads):16s
- NumPy(1 thread):48s
- 标准BLAS(未优化,1螺纹):166s
结论:
- 未经优化的标准BLAS非常慢,不应使用。
- NumPy的Windows二进制文件是用ATLAS编译的,速度惊人的快。
- GotoBLAS2甚至更快,特别是如果你可以使用多个内核。
注意
如果您得到DLL 加载 失败的
错误消息,通常意味着在路径。如果它发生只有当你使用OpenBLAS,这意味着它是libopenblas.dll
本身或其中一个依赖项。在它是依赖关系的情况下,您可以使用Dependency Walker实用程序来确定哪一个。