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中,转到“开始”屏幕,然后键入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最近停止分发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的兼容性是必需的。要为所有用户安装软件包,请:

  1. 打开管理员控制台(打开start,然后键入cmd,右键单击命令提示符图标,选择运行 as administrator
  2. 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。安装过程中需要注意的几个注意事项:

  1. 安装到没有空格的目录中(我们将它放在C:\SciSoft\TDM-GCC-64中)
  2. 如果你不想杂乱你的系统PATH取消检查添加 到 路径选项。
  3. 通过选中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.alibmsvcr90.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.0C:\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的兼容性是必需的。要为所有用户安装软件包,请:

  1. 打开管理员控制台(打开start,然后键入cmd,右键单击命令提示符图标,选择运行 as administrator
  2. 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。安装过程中需要注意的几个注意事项:

  1. 安装到没有空格的目录中(我们将它放在C:\SciSoft\TDM-GCC-64中)
  2. 如果你不想杂乱你的系统PATH取消检查添加 到 路径选项。
  3. 通过选中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.alibmsvcr90.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.0C:\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.alibmsvcr90.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.0C:\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。请这样做,并验证是否找到以下程序:

  1. 其中gcc
  2. 其中gendef
  3. 其中cl
  4. 其中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,请执行以下操作:

  • 下载mingw-get命令行安装程序二进制文件

  • 将其内容解包到你的pythonxy\mingw目录中。

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

    mingw-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环境,你可以继续如下:

  1. 通过运行安装程序安装wget即可在wget网站上下载。请注意,此设置不会将wget添加到系统PATH中,因此您需要相应地修改PATH环境变量(在Windows中或在.profile启动文件在你的MinGW home)。完成后,在MinGW shell中键入wget - version,验证它是否正常运行。还要注意,如果你是一个代理,你应该设置你的HTTP_PROXY环境变量,或者使用自定义wgetrc配置文件wget能够下载文件。
  2. 解压缩OpenBLAS,并在MinGW shell中进入相应的目录。
  3. 编译OpenBLAS:
quickbuild.win32 1>log.txt 2>err.txt

(对于64位Windows使用quickbuild.win64)。编译可能需要一段时间,因此现在是休息的好时机。当它完成后,你应该在你的OpenBLAS文件夹中有libopenblas.dll。如果不是这样,请检查err.txt日志中是否有构建错误。

  1. 请确保libopenblas.dll位于您的PATH中的文件夹中。
  2. 使用ldflags = 修改你的.theanorc(或.theanorc.txt)-LX:\\ YYY \\ ZZZ -lopenblas其中X:\\YYY\\ZZZ是包含libopenblas.dll的文件夹的路径。此设置也可以在Python中进行更改以用于测试目的(在这种情况下,它将仅在您的Python会话期间保留):
theano.config.blas.ldflags = "-LX:\\YYY\\YYY -lopenblas"

  1. 要测试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实用程序来确定哪一个。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容