Theano1.1-安装
之前一直想弄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-安装的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- 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. ...
- 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 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
- tLinux 2.2下安装Mono 4.8
Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
随机推荐
- Android中的单例模式
定义: 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 使用场景: 确保某一个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一 ...
- centos7 ssh 设置key认证
vi /etc/ssh/sshd_config 查找RSAAuthentication.StrictModes.PubkeyAuthentication.AuthorizedKeysFile把所在行修 ...
- MYSQL数据回流
一般的网站应用中,总会有部分二次数据(处理过的原始数据)展现给前台,比如,拿购物网站来说,购买进口奶粉最多的用户群体:哪类产品消费增长趋势最旺盛:用户的消费历史归类等都是二次数据.由于这部分 ...
- Javascript之旅——终点站:困惑的settimeout
有时候结局不是很美好,但起码这也算是一种结局,这个系列的最后一篇settimeout,这是一个让人困惑的函数,也是我一直在吐槽JS的 原因,我们看不到JS的源代码,setimeout同样也是,从始到终 ...
- Spring AOP 动态代理 缓存
Spring AOP应用:xml配置及注解实现. 动态代理:jdk.cglib.javassist 缓存应用:高速缓存提供程序ehcache,页面缓存,session缓存 项目地址:https://g ...
- android java数组应用与说明
如果定义类或结构数据则需每个都进行创建才可以使用,不然都为null 如: PointF pts[] = new PointF[5] ;//pts[0].x =CSSliderSize / 2;//这样 ...
- 几个 Ceph 性能优化的新方法和思路(2015 SH Ceph Day 参后感)
一周前,由 Intel 与 Redhat 在10月18日联合举办了 Shanghai Ceph Day.在这次会议上,多位专家做了十几场非常精彩的演讲.本文就这些演讲中提到的 Ceph性能优化方面的知 ...
- css3中变形与动画(三)
transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...
- [书目20160612]思考软件,创新设计——A段架构师的思考技术
高焕堂:在校时期主修统计学和信息管理,将近40年软件开发生涯.工作于亚洲和欧美各地区,专精于商业策略思考和系统架构设计.近年来,热衷于<it+设计>教育顾问和产品开发. 第1章 商业思维 ...
- 分享——张南《从Desktop到Mobile的自动化测试实践》
张南在top100summit(14年)上分享了google从Desktop到Mobile的自动化测试实践,这里分享一下 案例简述 随着每年移动用户量的增长,移动网络速度以及覆盖力的增强,移动设备逐年 ...