deepnet是多伦多大学计算机系机器学习组开发的一个神经网络工具包,可以进行以下计算:

1.  Feed-forward Neural Nets
2.  Restricted Boltzmann Machines
3.  Deep Belief Nets
4.  Autoencoders
5.  Deep Boltzmann Machines
6.  Convolutional Neural Nets

主要的成果是其中的DBM,可用于多模态建模。论文是“Multimodal Learning with Deep Boltzmann Machines”

大部分内容转载自机器学习_刘伟

1、下载Deepnet,解压并仔细阅读目录下的INSTALL.txt文件。

2、安装python数学工具包numpy,scipy和nose,如在终端上执行:

$ sudo apt-get install python3-numpy

可参考这里

测试,如scipy

python
>>> import scipy
>>> reload(scipy)

3、安装CUDA

增加关于CUDA的环境变量,修改文件~/.bashrc

$ sudo vi .bashrc
在最下面加上
export CUDA_BIN=/usr/local/cuda-6.5/bin
export CUDA_LIB=/usr/local/cuda-6.5/lib64
export PATH=${CUDA_BIN}:$PATH
export LD_LIBRARY_PATH=${CUDA_LIB}:$LD_LIBRARY_PATH

4、安装Protocol Buffers

官网下载,我使用protobuf-2.6.1.tar.gz。

cd至下载路径

解压

$ tar zxvf protobuf-2.6.1.tar.gz

进入解压目录

$ cd protobuf-2.6.1

安装源码,配置、编译、编译检查、安装

$ ./configure
$ make
$ make check
$ make install

增加环境变量

$ sudo vi .bashrc
#在最下面加上
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

测试

$ protoc --version
libprotoc 2.6.1

错误 ImportError: No module named google.protobuf

cd到解压后的protobuf文件夹下的python文件夹,执行

sudo python setup.py install

错误 error: package directory 'google/protobuf/compiler' does not exist

解决办法:在google/protobuf/下创建compiler文件夹

检查

sudo python setup.py test

错误 ImportError: No module named descriptor_cpp2_test

无法解决!!!求教!!(但貌似对结果无影响)
5、cudamat编译

$ cd cudamat文件夹
$ make

deepnet作者上传的cudamat有所缺失,下载cudamat工具包并make编译,将编译后文件夹中的learn.py、learn.pyc(我这没有)和 libcudalearn.so复制到deepnet的cudamat文件夹下即可。现在cudamat已经改版,需要文件的请联系我。

增加cudamat环境变量

$ sudo vi .bashrc
在最下面加上(这里下载的deepnet名字为deepnet-master,我将其改为deepnet,并且里面还有一个deepnet子文件夹)
export PATH=/home/username/deepnet/cudamat:$PATH
export LD_LIBRARY_PATH=/home/username/deepnet/cudamat:$LD_LIBRARY_PATH
export PYTHONPATH=${PYTHONPATH}:/home/username/deepnet/deepnet
export PYTHONPATH=$PYTHONPATH:/home/username/deepnet

6、下载MNIST数据集,cd到deepnet/deepnet/examples目录下运行

$ python setup_examples.py  <path to mnist dataset>  <output path>

这句主要是配置数据集和输出文件的位置。到examples下的任一目录执行可执行文件runall.sh,如在deepnet/deepnet/examples/rbm下执行:

$ sh runall.sh

遇到的问题

1、deepnet的python需要matplotlib包,而matplotlib包又依赖于freetype(提供读取TTF字体文件)和libpng(提供加载和保存PNG文件),因此这两者需要先安装。我在装freetype时遇到了问题。

运行runall.sh时,显示“No such file or directory: u'tmp/matplotlib-username/frontList.cache'”

原因:缺失matplotlib-username文件夹(username是我用户名)

解决:

$ mkdir /tmp/matplotlib-username

2、运行runall.sh时,出现“No GPU board available”

原因:deepnet将GPU关闭

解决:更改 /deepnet/deepnet下的trainer.py文件,将main中的两个if :  board = LockGPU()和board = FreeGPU()注释掉,用以下两行来替代GPU的初始化设置,放在main第一行:

cm.cuda_set_device(0)
cm.cublas_init()

3、运行cudamat出现错误,如下图

原因:我的机器GPU为GTX750,CUDA是6.5,作者使用的GPU或CUDA版本比较低,当在cudamat下make的时候,不兼容。

解决:更改Makefile文件

vi Makefile

我的Makefile如下

即增加了35和50两行。

Ubuntu14.04+CUDA6.5环境下神经网络工具包Deepnet配置的更多相关文章

  1. ubuntu14.04建立交叉编译环境, 注意事项

    ubuntu14.04建立交叉编译环境, 注意事项 ~$ arm-linux-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: e ...

  2. Linux/CentOS环境下如何安装和配置PhantomJS工作环境

    PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, C ...

  3. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  4. 联想电脑win7旗舰版环境下的如何成功配置AppServ

    联想电脑win7旗舰版环境下的如何成功配置AppServ 毕业设计中需要用Mysql数据库,并且想找一个方便Mysql数据库编程的开发工具,百度搜索了一下,AppServ集成环境安装包能快速搭建环境. ...

  5. 实验七:Xen环境下cirrOS的安装配置

    实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统.内核文件以及r ...

  6. 【转】mysql8.0 在window环境下的部署与配置

    [转]mysql8.0 在window环境下的部署与配置 今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置 ...

  7. Linux环境下NodeJS的安装配置(HelloWorld)

    Linux环境下NodeJS的安装配置(HelloWorld) 最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 r ...

  8. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  9. Mac 环境下svn服务器的配置

    Mac 环境下svn服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Torto ...

随机推荐

  1. 折腾iPhone的生活——5s使用的各种小技巧

    电池: iPhone电池正常充电方法:随便充,想怎么充怎么充,想充就充,想停就停. 需要注意: 1.如果要闲置3个月以上,一定要冲到40%电以后再闲置 2.不要在-40~35度使用(应该是废话) 3. ...

  2. 【PHP】php+txt实现网页计数器(限IP统计方式和不限IP统计方式)

    一般的网页计数器制作实现思路:首先设定存放统计数据的文件(counter.txt)——读取文件中的内容存入字符串——自加操作——以写入方式打开文件写入数据——从文件中输出统计数据——关闭文件. 代码: ...

  3. maven怎么引入自定义jar的详细图文教程

    1 首先找到你的maven的配置文件{你maven的路径}\conf\settings.xml,然后打开settings.xml,并修改你存放本地jar路径.如我想把我自己的jar放到C:\Users ...

  4. Spring三 Bean的三种创建方式

    创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring ...

  5. linux上安装rar解压软件

    描述:Linux默认自带ZIP压缩,最大支持4GB压缩,RAR的压缩比大于4GB. -------------------------------------------------- 下载 # wg ...

  6. Leo 搭积木

    Leo 搭积木[问题描述]Leo是一个快乐的火星人,总是能和地球上的 OIers玩得很 high.2012 到了, Leo 又被召回火星了,在火星上没人陪他玩了,但是他有好多好多积木,于是他开始搭积木 ...

  7. winform 加密 解密 分类: WinForm 2014-05-16 15:05 400人阅读 评论(0) 收藏

    界面显示: 加密: 解密: 代码实现: public string EncryptString(string str)         {             #region 加密程序       ...

  8. POJ 1737 统计有n个顶点的连通图有多少个 (带标号)

    设f(n)为所求答案 g(n)为n个顶点的非联通图 则f(n) + g(n) = h(n) = 2^(n * (n - 1) / 2) 其中h(n)是n个顶点的联图的个数 这样计算 先考虑1所在的连通 ...

  9. c++中返回对象与返回引用的区别

    这几天在做用C++做课程设计,对其返回对象的实现感到迷惑. 通过对汇编代码的分析,可以清楚的看到,直接返回引用和返回对象的区别到底是什么. 分析的程序如下 #include<cstdio> ...

  10. VTMagic 的使用介绍

    VTMagic 有很多开发者曾尝试模仿写出类似网易.腾讯等应用的菜单分页组件,但遍观其设计,大多都比较粗糙,不利于后续维护和扩展.琢磨良久,最终决定开源这个耗时近两年打磨而成的框架,以便大家可以快速实 ...