5.3 Windows安装说明
译者:Python 文档协作翻译小组,原文:Windows Installation Instructions。 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处。
警告
如果你想从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 FilesMicrosoftVisual C for Python9.0
。
最后从这里下载stdint.h
标题,并将其另存为C:Program Files (x86)Common FilesMicrosoftVisual C for Python9.0VCincludestdint.h
。
GCC
Theano C代码编译器目前需要一个GCC安装。我们使用了为32位和64位平台提供的构建TDM GCC。安装过程中需要注意的几个注意事项:
- 安装到没有空格的目录中(我们将它放在
C:SciSoftTDM-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:SciSoftWinPython-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:
代码语言:javascript复制C:Usersuser>ipython
[...]
In [1]: import numpy
如果您看到一条错误消息,告诉您DLL 加载 失败
,这可能是由于脚本启动ipython。如果C:SciSoftPython27
是安装EPD的目录,请编辑C:SciSoftPython27Scriptsipython.bat
set path="C:SciSoftPython27";%path%
删除Python27
周围的引号,导致:
set path=C:SciSoftPython27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
代码语言:javascript复制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>AppDataLocalEnthoughtCanopyAppappdatacanopy-1.0.0.1160.win-x86_64Scripts -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:mingw64msys
。运行C:mingw64msysmsys.bat
,在MSYS shell中,键入
sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:MinGWmsys1.0
或C:mingw64msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被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 FilesMicrosoftVisual C for Python9.0
。
最后从这里下载stdint.h
标题,并将其另存为C:Program Files (x86)Common FilesMicrosoftVisual C for Python9.0VCincludestdint.h
。
GCC
Theano C代码编译器目前需要一个GCC安装。我们使用了为32位和64位平台提供的构建TDM GCC。安装过程中需要注意的几个注意事项:
- 安装到没有空格的目录中(我们将它放在
C:SciSoftTDM-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:SciSoftWinPython-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:
代码语言:javascript复制C:Usersuser>ipython
[...]
In [1]: import numpy
如果您看到一条错误消息,告诉您DLL 加载 失败
,这可能是由于脚本启动ipython。如果C:SciSoftPython27
是安装EPD的目录,请编辑C:SciSoftPython27Scriptsipython.bat
set path="C:SciSoftPython27";%path%
删除Python27
周围的引号,导致:
set path=C:SciSoftPython27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
代码语言:javascript复制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>AppDataLocalEnthoughtCanopyAppappdatacanopy-1.0.0.1160.win-x86_64Scripts -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:mingw64msys
。运行C:mingw64msysmsys.bat
,在MSYS shell中,键入
sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:MinGWmsys1.0
或C:mingw64msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被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:SciSoftWinPython-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:
代码语言:javascript复制C:Usersuser>ipython
[...]
In [1]: import numpy
如果您看到一条错误消息,告诉您DLL 加载 失败
,这可能是由于脚本启动ipython。如果C:SciSoftPython27
是安装EPD的目录,请编辑C:SciSoftPython27Scriptsipython.bat
set path="C:SciSoftPython27";%path%
删除Python27
周围的引号,导致:
set path=C:SciSoftPython27;%path%
然后,它应该在所有新的终端工作。
pip不包括在EPD中,但你可以简单地安装它:
代码语言:javascript复制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>AppDataLocalEnthoughtCanopyAppappdatacanopy-1.0.0.1160.win-x86_64Scripts -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:mingw64msys
。运行C:mingw64msysmsys.bat
,在MSYS shell中,键入
sh /postinstall/pi.sh
并回答几个问题,以便MSYS正确地链接到你的MinGW安装。
建议将您的MSYS主目录设置为与您的Windows主目录相同。这将避免在Windows命令提示符下运行Theano和MSYS shell之间不一致的行为。没有设置全局Windows HOME
环境变量(可能会影响其他程序)的一种方法是编辑您的msys.bat
文件(例如在C:MinGWmsys1.0
或C:mingw64msys
),并在开头添加以下行(注意你可能需要使用例如写字板来编辑此文件,因为记事本被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:scisoftenv.bat
以配置系统路径:
REM configuration of paths
set VSFORPYTHON="C:Program Files (x86)Common FilesMicrosoftVisual C for Python9.0"
set SCISOFT=%~dp0
REM add tdm gcc stuff
set PATH=%SCISOFT%TDM-GCC-64bin;%SCISOFT%TDM-GCC-64x86_64-w64-mingw32bin;%PATH%
REM add winpython stuff
CALL %SCISOFT%WinPython-64bit-2.7.9.4scriptsenv.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:scisoftenv.bat
来访问Python shell。请这样做,并验证是否找到以下程序:
- 其中gcc
- 其中gendef
- 其中cl
- 其中nvcc
最后,我们需要为GCC创建一个链接库。打开Python shell并将cd
更改为c:SciSoft
。然后执行:
gendef WinPython-64bit-2.7.9.4python-2.7.9.amd64python27.dll
dlltool --dllname python27.dll --def python27.def --output-lib WinPython-64bit-2.7.9.4python-2.7.9.amd64libslibpython27.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月)改为:
代码语言:javascript复制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:scisoftenv.bat
如果遵循本教程中的安装目录)和cd
然后运行:
python setup.py develop
此步骤将向The PYTHON_PATH
环境变量添加Theano目录。
在这个阶段你可以检查是否工作,并能够编译C代码的CPU执行。
创建一个测试文件,包含:
代码语言:javascript复制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(), ))
代码语言:javascript复制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将其更改为WinPythonDirsettings
(因此在我们的系统中,这对应于c:scisoftWinPython-64bit-2.7.9.4settings
。
要使用GPU,请写入以下配置文件:
代码语言:javascript复制[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月)改为:
代码语言:javascript复制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:scisoftenv.bat
如果遵循本教程中的安装目录)和cd
然后运行:
python setup.py develop
此步骤将向The PYTHON_PATH
环境变量添加Theano目录。
在这个阶段你可以检查是否工作,并能够编译C代码的CPU执行。
创建一个测试文件,包含:
代码语言:javascript复制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(), ))
代码语言:javascript复制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将其更改为WinPythonDirsettings
(因此在我们的系统中,这对应于c:scisoftWinPython-64bit-2.7.9.4settings
。
要使用GPU,请写入以下配置文件:
代码语言:javascript复制[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.2EGG-INFOmingwusri686-w64-mingw32
)。要在Python(x,y)中包含的MinGW安装之上安装MSYS,请执行以下操作:
下载mingw-get命令行安装程序二进制文件。
将其内容解包到你的pythonxymingw
目录中。
在提示符(cmd
)中,安装MSYS
mingw-get install msys-base
如果无法自动找到mingw-get
,只要首先导航到文件夹中(如果它位于bin
子文件夹中)。
编辑pythonxymingwmsys1.0msys.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实用程序来确定哪一个。