热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

64位Win7下安装并配置Python3的深度学习库:Theano

注:本文全原创,作者:NoahZhang(http:www.cnblogs.comnoahzn)这两天在安装Python的深度学习库:Theano。尝试了好多遍,CMa

  

 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/)

 

  这两天在安装Python的深度学习库:Theano。尝试了好多遍,CMake、MinGW、BLAS、APLACK等等都装了试着自己编译,网上教程也搜了一大堆,但都没成功。昨晚回家清理干净电脑,又小心翼翼地装了一遍,成功,今天来公司又装了一遍,也成功,现把步骤记录如下:

 

  (注:本步骤适用于WIN7 64位操作系统,Python版本为3.4.3 64bit)

  1. 请将电脑清理干净。包括之前装的MinGW、Python等的环境变量。

  2. 安装:Microsoft Windows SDK for Windows 7 and .NET Framework 4。链接: http://pan.baidu.com/s/1o6uYbTC 密码: iy4c

  3. 安装:CUDA5.5。链接: http://pan.baidu.com/s/1bnuE4z1 密码: p9r4

  4. 安装:GCC。链接: http://pan.baidu.com/s/1jGou7MQ 密码: zvsx

    (注意:安装的时候,勾选安装“openmp”,不要勾选“add to PATH”)

    

  

  5. 安装完GCC后,把“D:\TDM-GCC-64\bin”和“D:\TDM-GCC-64\x86_64-w64-mingw32”加入环境变量。(注意:我这里是装在D盘的,大家根据自己的安装路径更改哦)

  6. 安装WinPython。如果使用原生Python的话,还要安装BLAS(基础线性代数程序集),自己安装实在太麻烦了,之所以选用WinPython发行包是因为它可以自己链接MKL库,就不用我们自己编译安装BLAS了,而且自带了诸如cxfreeze、numpy、scipy、nltk、PyQt4等几十个常用的库。链接: http://pan.baidu.com/s/1kTimVIJ 密码: yc78

  检验numpy等库是否使用了blas加速,可以在python中输入:

import numpy
id(numpy.dot)
== id(numpy.core.multiarray.dot)

  如果结果是:False,则表明实现了BLAS加速。

  

  7. 创建GCC链接库。cmd下cd到安装WinPython的磁盘根目录,执行:

gendef WinPython-64bit-3.4.3.2\python-3.4.3.amd64\python34.dll

dlltool
--dllname python34.dll --def python34.def --output-lib WinPython-64bit-3.4.3.2\python-3.4.3.amd64\libs\libpython34.dll.a

  

  8. 安装Theano。官方推荐用git安装,我试过了,还是自己手动安装吧…把下载的“Theano-0.7.0-py3-none-any.whl”文件放到“\WinPython-64bit-3.4.3.2\python-3.4.3.amd64\Lib\site-packages”下,执行WinPython目录下的"WinPython Command Prompt.exe",cd到site-packages目录,输入:pip install Theano-0.7.0-py3-none-any.whl。

  链接: http://pan.baidu.com/s/1dDvWuGD 密码: nye6

  

  # 2015.05.20更新:

  # 推荐大家使用开发版的theano,官方解释是修复了海量BUG…

  # 先下载git for windows, 链接: http://pan.baidu.com/s/1o6omEs6 密码: ayi6

  # 然后进入site-packages文件夹,右键:Git Bash Here,输入:git clone https://github.com/Theano/Theano.git

  # 然后切到theano文件夹里安装一下即可:python setup.py install

 

 

  9. 配置Theano。在WinPython目录下的settings文件夹内创建一个文件“.theanorc.txt”,在里面输入:

[global]
floatX = float32
device = gpu

[cuda]
root = D:\cuda5.5\bin

    (注意:这里的cuda目录根据你的安装路径自行调整。)

  10. 重启电脑。(重要)

  11. 测试是否安装成功。打开IDLE,键入官方的测试代码(官方的代码是基于Python2写的,我已经改成了Python3可执行的代码):

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen
= 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000

rng
= numpy.random.RandomState(22)
x
= shared(numpy.asarray(rng.rand(vlen), config.floatX))
f
= function([], sandbox.cuda.basic_ops.gpu_from_host(T.exp(x)))
print(f.maker.fgraph.toposort())
t0
= time.time()
for i in range(iters):
r
= f()
t1
= time.time()
print('Looping %d times took' % iters, t1 - t0, 'seconds')
print('Result is', r)
print('Numpy result is', numpy.asarray(r))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')

  如果成功的话,会显示类似下面的信息:

>>> 
Using gpu device 0: GeForce
605
[GpuElemwise{exp,no_inplace}(
)]
Looping
1000 times took 0.48799991607666016 seconds
Result
is
Numpy result
is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761
1.62323296]
Used the gpu

  嗯…公司电脑显卡是Geforce 605……

 

  这样就大功告成了,我自己在摸索安装时,遇到了各种错误信息,大家有碰到什么问题可以留言,或许我知道如何解决……


推荐阅读
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • macOS命令行创建Android模拟器
    macOS下不安装AndroidStudio使用VSCode来开发Flutter应用使用命令行创建和管理Android模拟器设备avdmanageravdmanager 是一种命令 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • Ihaveapolynomial(generatedfromthecharacteristicpolynomialofamatrix)andIdliketosolve ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • 五、RabbitMQ Java Client基本使用详解
    JavaClient的5.x版本系列需要JDK8,用于编译和运行。在Android上,仅支持Android7.0或更高版本。4.x版本系列支持7.0之前 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
author-avatar
扫地僧2502896033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有