Ubuntu14.04+CUDA6.5环境下神经网络工具包Deepnet配置
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配置的更多相关文章
- ubuntu14.04建立交叉编译环境, 注意事项
ubuntu14.04建立交叉编译环境, 注意事项 ~$ arm-linux-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: e ...
- Linux/CentOS环境下如何安装和配置PhantomJS工作环境
PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, C ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- 联想电脑win7旗舰版环境下的如何成功配置AppServ
联想电脑win7旗舰版环境下的如何成功配置AppServ 毕业设计中需要用Mysql数据库,并且想找一个方便Mysql数据库编程的开发工具,百度搜索了一下,AppServ集成环境安装包能快速搭建环境. ...
- 实验七:Xen环境下cirrOS的安装配置
实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统.内核文件以及r ...
- 【转】mysql8.0 在window环境下的部署与配置
[转]mysql8.0 在window环境下的部署与配置 今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置 ...
- Linux环境下NodeJS的安装配置(HelloWorld)
Linux环境下NodeJS的安装配置(HelloWorld) 最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 r ...
- GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置
GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...
- Mac 环境下svn服务器的配置
Mac 环境下svn服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Torto ...
随机推荐
- linux OpenOffice
1.下载所需的安装包 /project/openofficeorg.mirror/4.0.1/binaries/zh-CN/Apache_OpenOffice_4.0.1_Linux_x86-64_ ...
- mongodb基本概念解析
MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术 ...
- python_将一组数据展示成直方图(以list为例)
直接上代码: from matplotlib import pyplot as plt # 参数依次为list,抬头,X轴标签,Y轴标签,XY轴的范围 def draw_hist(myList,Tit ...
- CSS3 新增属性
1Css3概述 从2010年开始,HTML5与CSS3就一直是互联网技术中最受关注的两个话题. 从前端技术的角度可以把互联网的发展分为三个阶段:第一阶段是web1.0以内容为主的网络 前端主流技术是H ...
- Bluetooth 4.0之Android 解说
Android平台包括了对蓝牙网络协议栈的支持,它同意一个蓝牙设备跟其它的蓝牙设备进行无线的数据交换.应用程序通过Android蓝牙API提供訪问蓝牙的功能. 这些API会把应用程序无线连接到其 ...
- HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master
windows下开发HBase应用程序.HBase部署在linux环境中, 在执行调试时可能会出现无法找到主机,类似异常信息例如以下: java.net.UnknownHostException: u ...
- [MODx] Solve cannot upload large file
If you also run into this problem, dont' worry, here is the solution for you. First: In Modx, go &qu ...
- Systemtap kernel.trace("*") events source code
http://blog.163.com/digoal@126/blog/static/16387704020131014562216/
- 关于javascript dom扩展:Selector API
众多javascript库中最常用的一项功能,就是根据css选择符选择与某个模式匹配的DOM元素.之前由于对javascript的认识较低,对javascript对DOM操作还停留在getElemen ...
- 零基础学习云计算及大数据DBA集群架构师【预科2015年12月14日周一】
1.第一天比较轻松,上午填表格,录指纹,拍照片,做自我介绍. 2.下午老师简单介绍了一下PC\交换机\路由器\塔式服务器\机架式服务器(1U\2U)\刀片服务器\磁带机 3.班主任陈老师朱老师,预科秦 ...