之前一直想弄theano,可是python不是很懂,在学习了一段时间之后开始安装theano。当然官网上的安装资料是全,可是也太繁琐了。这里介绍的是最简单,最方面的安装theano的方法。官网首页:http://deeplearning.net/software/theano/

环境:win8.1_64bit+ anaconda2.1.0_64bit+CUDA6.5_64bit+theano0.7。

1:下载Anaconda 2.1.0

https://repo.continuum.io/archive/.winzip/   ;该链接是anaconda官网的不同时间的版本。anaconda3表示python3.X,而anaconda表示2.X。这个正常安装就好,我是装在C:\Anaconda的,也就是C根目录下。无需重启(最好重启使得安装的path等路径生效)。

2:打开cmd,,可以查看到有,如果没这个,会在后续提示如“g++”找不到,无法编译的问题。

3:输入,会自动在网上搜索theano0.7版本进行安装,会出现

4:这时候其实theano应该算是安装好了,可是如果说只是用cpu,那么体现不出gpu的优势,可以在这个路径下,也就是linux的/home路径,也就是windows的cmd命令运行的时候的路径

新建文件   .theanorc.txt,在里面写上

或官网的

5:输入python进入python环境,然后进行import theano,会出现:

按照之前找的资料,是不会出现这些东西的,为何我出现了,那就不知道。

6:随便建立个测试py文件,写上

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(), )

不过注意这里的print不再是2.X的语句,而是需要使用迁移到3.X的函数形式,也就是使用print()。运行后结果:

上图中最后的used the gpu 就是成功使用的证据,虽然上面的那一些出来的东西还暂时搞不懂,不过至少迈出了第一步。

注意事项:

1、为了安装的顺利,在安装anaconda和theano等软件的时候推荐路径中不要有空格,而且最好不要出现中文。

2、首先暂时不论系统是多少位的,你的CUDA装的是32的,那么anaconda也对应下32位的,反之亦然。不过CUDA在7以上版本就开始独立一个文件不区分是否是32还是64位了,可是暂时没看到有用CUDA7来安装Theano的。

3、虽然对于当前时间来说有更新的anaconda2.2.0的版本,但是还是推荐下这个,原因:

a)不同版本中包含的东西不一样,这个版本的包含了mingw,而2.2.0版本的并不包含;虽然可以后续使用例如[5]或者,[5]来进行安装,可是后续还是会出问题如图:

该问题在[3]中的https://github.com/Theano/Theano/issues/2087里面有讨论,不过估计(猜的)是新的anaconda缺少mingw,而使用指令更新后得到的mingw不是原来的版本。

b)theano对python3支持不是很好,所以不推荐下anaconda3系列的,因为theano是基于python2.4以上写的,这个在官网http://deeplearning.net/software/theano/install.html#install 中有说明

如果安装python3的话,在后续import theano的时候会出现[4]中的http://comments.gmane.org/gmane.comp.mathematics.theano.user/6515的问题

(这个观点是按照字面意思猜的,不一定正确,不过该问题却已经解决)这是因为python2.X和python3.X中的默认编码选择已经不一样了,在3中默认是uniconde编码方式的。虽然在日常的代码编写中可以如http://www.cnblogs.com/blueel/archive/2012/08/21/2649590.html这样简单处理,可是对于这个问题,cuda_ndarray.cu,首先进去看不到对应的字符串,而且感觉真正的原因不是这个。(https://github.com/Theano/Theano/issues/783,这个网页没看,不过对这个问题的理解有帮助)。

未做:

1、如果想在VS下做图形化界面的开发,推荐[7]的对应部分。

参考资料:

[1] Theano 官网:http://deeplearning.net/software/theano/index.html

[2] Theano在github上的网址:https://github.com/Theano

[3] Theano在github上的问题讨论区:https://github.com/Theano/Theano/issues

[4] Theano的google团队问题讨论区:http://blog.gmane.org/gmane.comp.mathematics.theano.user

[5] Deep learning:Theano安装攻略:http://blog.163.com/yuyang_tech/blog/static/216050083201469101518900/

[6] 采用anaconda2.1.0的灵感来源:http://blog.csdn.net/u010454729/article/details/43052505

[7] Win8.1_64bit下搭建theano的博客:http://www.th7.cn/Program/Python/201407/228314.shtml

Theano1.1-安装的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

  10. 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!

    如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...

随机推荐

  1. 分享 | Git常用的一些命令

    最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...

  2. oracle 分析函数的使用(1)

    LISTAGG(columnName,'拼接符') WITHIN GROUP(ORDER BY clause) --order by 子句决定拼接内容的顺序 LISTAGG(columnName,'' ...

  3. Sqlite学习笔记(三)&&WAL性能测试

    WAL是SQLite3.7.0版本引入的一个重大改进.SQLite官网宣称在很多使用场景下,WAL模型的性能都要好于默认的DELETE模式.下面将针对几个主要场景对WAL性能做测试,测试的硬件与xxx ...

  4. Bootstrap学习(3)

    Bootstrap 图片  Bootstrap 对图片的支持.Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来 ...

  5. C++浅析——返回对象的函数

    一.原码分析 1.1 测试代码 为了方便查看拷贝构造函数调用过程,自定义了拷贝构造函数,但啥也没干. class CTEST { public: int m_nData; //Method: publ ...

  6. python curses使用

    python 中curses封装了c语言的curses,把c中复杂部分简单化,比如addstr(),mvaddstr(),mvwaddstr()合并成了一个addstr()方法. 一.语法入门 1.打 ...

  7. Java修饰符public,private,protected及默认的区别

    Java中访问修饰符public.private.protecte.default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属 ...

  8. STL vector

    STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...

  9. POJ3255Roadblocks[次短路]

    Roadblocks Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12697   Accepted: 4491 Descr ...

  10. SpringMVC学习系列-后记 解决GET请求时中文乱码的问题

    SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...