Theano环境搭建/安装
关键词:theano安装,搭建theano环境, python, 深度学习
因为需要安装theano,结果发现这又是一个难以安装的python包…虽然网上教程不少,然而鱼龙混杂,试验了各种方法流程,最后总算是弄好了,现在把我的过程总结如下:
安装环境
- 64位win7系统,显卡:GT 730M,笔记本电脑;
- 已安装Visual Studio 2013 (都说VS2015太新不推荐);
- 借助Anaconda来安装theano,因为Anaconda已经集成了很多有用的python库,如numpy、nose、scipy等,强烈推荐。
安装Anaconda
- 我的版本:python2.7 windows 64-bit
- 下载地址:https://www.continuum.io/downloads
安装mingw
- 安装完之后,如果Anaconda目录里没有MinGW文件夹(据说这个跟Anaconda版本有关,有的版本会有,有的版本则没有。由于折腾的步骤太多,我也不确定自己这个版本一开始有没有),则通过如下方法安装mingw:
- 打开cmd,直接输入Anaconda的安装命令(为了避免干扰我已经卸载了系统里其他的python版本):
conda install mingw libpython
- 安装成功之后,Anaconda文件夹下就会出现MinGW文件夹。如果这个没有装好,运行测试时会提示存在g++问题。
- 这一步并没有下载其他乱七八糟的mingw安装软件,有很多教程是通过安装mingw软件来实现的。
安装theano
- 通过cmd直接运行以下命令(系统里有多个python版本的注意区分pip):
pip install theano
- 不要用什么theano.zip解压到目录底下或者theano_installer_latest.msi之类的方法安装。
- 目前的theano版本:0.8.2
配置环境变量
- 需要根据自己的安装路径来添加
- 在PATH添加(这个在Anaconda安装时可能已经设置了):
D:\Anaconda;D:\Anaconda\Scripts;
- 新建变量PYTHONPATH:(用来指明theano的安装目录)
D:\Anaconda\Lib\site-packages\theano;
- 在cmd的home目录中新建 .theanorc.txt 文件(作为theano的配置文件,注意名字中的第一个“.”,如果已经存在,则直接修改该文件),设置如下内容:
所谓cmd的home目录:打开cmd时,在>前面的默认路径:

[global]
openmp=False
[blas]
ldflags =
[gcc]
cxxflags = -ID:\Anaconda\MinGW\include
theano测试
下面测试theano是否安装成功:
- 测试方法1
用以下两行代码:
import theano
print theano.config.blas.ldflags

没有出错(没有返回值)则说明已经配置成功。
其实单单是import theano不报错就已经谢天谢地了。
- 测试方法2
或者用下面的指令测试(测试时会有其他错误提示或是warnings,但基本上还能运行的话则说明theano没问题,错误提示可能是有些东西还没安装好):
import theano
theano.test()
运行:

例如我这里提示没有nose-parameterized这个模块,安装方法:
pip install nose-parameterized
例如会提示PyCUDA的相关错误信息等。
注意:测试2必须在cpu下运行,在下面的GPU搭建中,如果配置了theano的device = gpu,则测试2就不能运行了。
- 测试方法3
通过验证BLAS是否安装成功:由于numpy是以来BLAS的,如果BLAS没有安装成功,虽然numpy也可以安装,但是无法使用BLAS的加速。
验证numpy是否真的成功依赖BLAS编译,用以下代码测试:
import numpy
id(numpy.dot) == id(numpy.core.multiarray.dot)
如果结果为False,表示成功依赖了BLAS加速,如果是TRUE则表示用的是python自己的实现,并没有加速。(我这里总是显示TRUE,暂时不知道为什么,但是前面的测试又表明theano已经安装成功)
使用GPU
上面的theano配置只是完成了上半部分,这个时候还不能进行gpu加速。如果使用GPU则需要继续以下步骤:
CUDA安装
- 首先检查自己的显卡是否支持CUDA(显卡至少是NVIDIA的),在如下网址查看具体是否支持:
- 确定已经安装Visual Studio
- 下载对应自己系统版本的CUDA,我用的是CUDA Toolkit 7.5, win7 x86_64
- 安装的时候注意选自定义安装,模块全部选上,精简版可能会遗漏需要的模块
- 验证安装成功:cmd输入nvcc -V,如果能出现版本信息,则证明nvcc安装成功
Theano文件配置(GPU)
- 编辑Theano的配置文件.theanorc.txt , 添加如下内容:(具体内容应当对应自己的Python版本和VS版本以及路径做适当修改)
[nvcc]
fastmath = True
flags = -LD:\Anaconda\libs
compiler_bindir = D:\Microsoft Visual Studio 2013\VC\bin
- 继续编辑Theano的配置文件,添加:
[global]
device = gpu
floatX = float32
Theano配置文件
最终的Theano配置文件内容为:
[global]
device = gpu
floatX = float32
openmp=False
[blas]
ldflags =
[gcc]
cxxflags = -ID:\Anaconda\MinGW\include
[nvcc]
flags = -LD:\Anaconda\libs
compiler_bindir = D:\Microsoft Visual Studio 2013\VC\bin
- 在Python中运行”import theano.sandbox.cuda”. 将会编译第一个Cuda文件, 应当没有错误产生。
测试是否使用GPU
- 测试方法1
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:测试是否使用GPU
时间:2016年6月10日 11:20:10
"""
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([], 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)
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
使用GPU的测试结果:1.66秒

使用CPU的测试结果:17.28秒
切换成cpu的方法,我是通过更改theano配置文件,将.theanorc.txt的内容只保留以下内容(可能需要重启电脑):
[blas]
ldflags =
[gcc]
cxxflags = -ID:\Anaconda\MinGW\include

- 测试方法2
在theano库中找到theano/misc/check_blas.py,运行这个测试文件。
这个测试文件里还有不同型号显卡的性能结果,以供对比。

其他可选
- Visual Studio 2013下的安装配置
- 为了方便以后建立统一的算法调用平台,故使用Visual Studio来进行图形化界面的开发,安装Python Tools for Visual Studio后即可在Visual Studio环境下来调用当前系统中的Python编译环境。
- 安装Python Tools for Visual Studio (2013),下载地址:
- http://www.aibbt.com/a/18928.html
Theano环境搭建/安装的更多相关文章
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...
- Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说
版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...
- linux内核学习之一:环境搭建--安装Debian7.3
本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基础知识及基本shell命令:现代操作系统的基本概念:C语言和gc ...
- linux/centos elasticsearch 环境搭建 安装 运行 使用
环境搭建也是有些坑的存在,所以整理了一下搭建流程,安全无痛. ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例. 一.java 环境 直接apt安装火箭一 ...
- python服务器环境搭建——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
- 【Python】部署上手App后端服务器 - Linux环境搭建安装Python、Tornado、SQLAlchemy
基于阿里云服务器端环境搭建 文章目录 基于阿里云服务器端环境搭建 配置开发环境 安装 Python 3.8.2 安装 Tornado 安装 MySQL 安装 mysqlclient 安装 SQLAlc ...
- redis教程-redis环境搭建安装(qq:1324981084)
需要整套redis缓存高可用集群教学视频的加qq:1324981084,本套视频从安装到集群的搭建和源码的解析,从零基础讲解. 1.利用命令将redis下载到/usr/local/文件夹下: wget ...
- RobotFramework自动化测试之环境搭建安装教程(一)
RobotFramework是基于Python语言的工具,所以装RF之前要先安装Python: Python现在有2.7跟3.5两个版本,如果是先装了3.5的话,是装不了2.7的.只有先装2.7的 才 ...
随机推荐
- 正负样本比率失衡SMOTE
正负样本比率失衡SMOTE [TOC] 背景 这几天测试天池的优惠券预测数据在dnn上面会不会比集成树有较好的效果,但是正负样本差距太大,而处理这种情况的一般有欠抽样和过抽样,这里主要讲过抽样,过抽样 ...
- maxscale读写分离
今天,写写mysql兄弟公司maridb开发的一个读写分离,既然是兄弟,那也适用于mysql. 1.安装依赖包 yum -y install gcc gcc-c++ ncurses ncurses-d ...
- C/C++语言简介之优缺点
一.优点1.简洁紧凑.灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写.把高级语言的基本结构和语句与低级语言的实用性结合起来.C 语言可以像汇编语言一样对位.字节和地址 ...
- 换行符\r \n LF
前言:在对照PSR-2规范时,看到文件结尾必须要以Unix LF(linefeed)结尾,不懂查~ 来源于:http://www.cppblog.com/prayer/archive/2009/08/ ...
- hql语句中的select字句和from 字句
package com.imooc.model; import java.util.List; import java.util.Map; import org.hibernate.Query; im ...
- Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ maven2 was cached in the local repository, resolution will not be reattempted until the update interv
Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ mave ...
- java1环境与简介
java1环境与简介 Ⅰ 个人简介 陈鹏 联系方式:15828682774 2012 年至今,从事软件开发 5 年. 1 年新加坡海外工作经历. 先后在民企.外企.创业公司做过开发. 熟悉 JAV ...
- R学习笔记:了解R的使用
R是一种区分大小写的解释性语言,只支持单行注释,注释由符号#开头,当前行出现在#之后的任何文本都会被R解释器忽略.R脚本的一次执行叫做一个会话(Session),可以通过函数quit()退出当前的会话 ...
- iOS中蓝牙的使用
Core Bluetooth的使用 1,建立中心设备 2,扫描外设(Discover Peripheral) 3,连接外设(Connect Peripheral) 4,扫描外设中的服务和特征(Disc ...
- 初学node.js有感一
Node.js感悟 一.前言 很久以前就对node.js十分的好奇和感兴趣,因为种种原因没能去深入的认识了解和学习掌握这门技术,最近正好要做一些项目,其中就用到了node.js中的一些东西,所以借着使 ...