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 ...
随机推荐
- 分享 | Git常用的一些命令
最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...
- oracle 分析函数的使用(1)
LISTAGG(columnName,'拼接符') WITHIN GROUP(ORDER BY clause) --order by 子句决定拼接内容的顺序 LISTAGG(columnName,'' ...
- Sqlite学习笔记(三)&&WAL性能测试
WAL是SQLite3.7.0版本引入的一个重大改进.SQLite官网宣称在很多使用场景下,WAL模型的性能都要好于默认的DELETE模式.下面将针对几个主要场景对WAL性能做测试,测试的硬件与xxx ...
- Bootstrap学习(3)
Bootstrap 图片 Bootstrap 对图片的支持.Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来 ...
- C++浅析——返回对象的函数
一.原码分析 1.1 测试代码 为了方便查看拷贝构造函数调用过程,自定义了拷贝构造函数,但啥也没干. class CTEST { public: int m_nData; //Method: publ ...
- python curses使用
python 中curses封装了c语言的curses,把c中复杂部分简单化,比如addstr(),mvaddstr(),mvwaddstr()合并成了一个addstr()方法. 一.语法入门 1.打 ...
- Java修饰符public,private,protected及默认的区别
Java中访问修饰符public.private.protecte.default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属 ...
- STL vector
STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...
- POJ3255Roadblocks[次短路]
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12697 Accepted: 4491 Descr ...
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...