最近在implement DeepLearning.net上面的程序。对于开源的python,最头疼的就是各种package和各种configuration. 而且还是在windows下。

想要让theano在windows下能GPU并行,总结配置如下:

1. 下载CUDA,安装,重启(重要)!

2. 下载Canopy, 申请academic free lincense.

3. Canopy中下载package, 由于numpy, scipy都集成了,主要下载:pip, mingw, libpython, urllib, theano这几个

4. 在C:\Users\<User name>\ (所谓的Home,或根目录)下建立一个文件 .theanorc.txt或.theanorc, 里面复制如下内容:

[global]
device = gpu
floatX=float32 [nvcc]
flags=-LC:\Users\Sam\AppData\Local\Enthought\Canopy32\User\libs
compiler_bindir=D:\Program Files\Microsoft Visual Studio 10.0\VC\bin [blas]
ldflags = -LD:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.1.0.1371.win-x86\Scripts -lmk2_core -lmk2_intel_thread -lmk2_rt

  注意:由于windows下创建文件必须有文件名,这里我们用canopy创建一个文件,然后保存为.theanorc.txt或.theanorc在根目录下(C:\Users\<User name>\).

5. 测试theano环境。

import theano

  如果不报错,恭喜你已经完成了测试第一步。

6. 运行下面程序。(来自http://deeplearning.net)

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 = 10000 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 xrange(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'

  这时,CUDA的nvcc不断的出现,说明我们的GPU运行已经调试可运行。之后就是本段程序的运行。如果还是CPU,时间大约在20秒左右(跟机器配置相关,我的是E8400);但如果是GPU,时间大约是0.6秒左右(我的是9800GT)。可见GPU的速度不是一般的快。

还有几个例子下面一起给大家:

数据:MNIST http://deeplearning.net/data/mnist/mnist.pkl.gz

模型:Logistic Regression using Stochastic Gradient Descent http://deeplearning.net/tutorial/code/logistic_sgd.py

   Multilayer Perceptron http://deeplearning.net/tutorial/code/mlp.py

     Restricted Boltzmann Machine http://deeplearning.net/tutorial/code/rbm.py

     Deep Belief Network http://deeplearning.net/tutorial/code/DBN.py

PS1:上面模型的代码中注意改data的路径,这样就可以直接运行了!

PS2:记得把utils.py(http://deeplearning.net/tutorial/code/utils.py)文件拷贝到一个系统环境目录(如C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.1.0.1371.win-x86\Lib\site-packages)下。

让theano在windows下能进行GPU并行的配置步骤的更多相关文章

  1. 【深度学习】在linux和windows下anaconda+pycharm+tensorflow+cuda的配置

    在linux和windows下anaconda+pycharm+tensorflow+cuda的配置 在linux和windows下anaconda+pycharm+tensorflow+cuda的配 ...

  2. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

  3. 在windows下用eclipse + pydev插件来配置python的开发环境

    在windows下用eclipse + pydev插件来配置python的开发环境 一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python. ...

  4. Windows下的Anaconda+OpenCV的环境配置

    Windows下的Anaconda+OpenCV的环境配置

  5. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  6. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

  7. windows下安装node.js及环境配置、部署项目

    windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...

  8. Windows+Python+anaconda机器学习安装及环境配置步骤

    Windows+Python+anaconda机器学习安装及环境配置步骤 1. 下载安装python3.6以上版本(包含pip,不用自己安装)2. 直接下载安装pycharm安装包(用于编写pytho ...

  9. Windows下如何采用微软的Caffe配置Faster R-CNN

    前言 比较简单的一篇博客.https://github.com/microsoft/caffe 微软的Caffe以在Windows下编译简单而受到了很多人的喜爱(包括我),只用改改prop配置然后无脑 ...

随机推荐

  1. ubuntu 切换默认python版本

    现在的python项目都是基于python3的了,再用ubuntu的时候默认的版本是py2的,所以想切换到py3上: 打开终端: sudo update-alternatives --install ...

  2. VBA 格式化excel数据表 (数据分列)

    Sub ImportData() ' ' Copy Data from one workbook to the Current Workbook ' Place the macro file in t ...

  3. Queue class

    #pragma once#include <iostream>#include <iomanip> using namespace std; class Queue{ stru ...

  4. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_23-页面预览-页面预览开发

    1.用户进入cms前端,点击“页面预览”在浏览器请求cms页面预览链接. 2.cms根据页面id查询DataUrl并远程请求DataUrl获取数据模型. 3.cms根据页面id查询页面模板内容 4.c ...

  5. Qt编写安防视频监控系统11-动态换肤

    一.前言 Qt中的动态换肤技术是非常一流的,直接调用qApp->setStyleSheet(qss);就可以对整个应用程序进行换肤,如果样式表内容不多,或者对应的贴图不对,效率还是蛮好的,不过据 ...

  6. ajax head带参数两次请求

    ajax请求head里带数据 客户端先发一次option看看能不能登录,然后再发一次post

  7. bootstrap导航栏PC端移动端之不同样式

    在此之前,我先说我之所以要改变网站PC移动双端不同样式的原因. 首先我的网站用到了bootstrap响应式布局,这是我网站的PC端导航栏: 这是我网站的移动端导航栏,看着就难受: 我用谷歌浏览器F12 ...

  8. Fourier serie

    你眼中看似落叶纷飞变化无常的世界,实际只是躺在上帝怀中一份早已谱好的乐章. 时域和频域就像观察一个物体一样,一个是主视图的,一个是侧视图. 1.在有限区间上由任意图形定义的任意函数都可以表示为单纯的正 ...

  9. lua语法介绍(二)

    一.语法简要 在学习任何语法之前,我们都需要知道该门语言是怎样定义的,是怎样运行的,话说白了,就是到了人家的山头得唱人家山头的歌.下面介绍lua的语法 1.变量的定义 特点: 1.变量在使用前必须声明 ...

  10. 【转帖】PostgreSQL之 使用扩展Extension

    PostgreSQL之 使用扩展Extension https://www.cnblogs.com/lnlvinso/p/11042677.html 挺好的文章.自己之前没有系统学习过 扩展.. 目前 ...