您的位置:首页 > 运维架构 > Linux

Linux环境下搭建DeepNet深度学习框架

2016-11-27 09:29 627 查看
由于实验室的项目需求,需要使用RBM(受限制玻尔兹曼机)、DBN(深信度网络)等深度学习的网络模型,于是学习和使用了Toronto大学提供的DeepNet深度学习框架。

DeepNet是Toronto大学的Nitish Srivastava博士开发的一款利用Python实现基于GPU的一些深度学习算法的框架,主要包括以下深度学习算法:

1.Feed-forward Neural Nets

2.Restricted Boltzmann Machines

3.Deep Belief Nets

4.Autoencoders

5.Deep Boltzmann Machines

6.Convolutional Neural Nets

该框架的实现需要cudamat和cuda-convnet的支持。

以下将在Linux环境下搭建DeepNet深度学习框架的过程分享给大家。

1.Linux版本是Ubuntu16.04。

2.下载安装Python。

Python使用的是Anaconda2 4.4.1,因为它集成了许多Python关于计算的第三方库,使用起来非常方便,将Anaconda2的环境变量添加到~/.bashrc文件中去。

cd /home/pb
vi ./bashrc
在最下行添加
export PATH="/home/pb/anaconda2/bin:$PATH"

3.CUDA安装。

我们的GPU是GTX1080,官网上下载CUDA8.0,下载地址:https://developer.nvidia.com/cuda-toolkit,安装好CUDA toolkit和SDK之后,将相关的环境变量添加到~/.bashrc文件中去。
export CUDA_BIN=/usr/local/cuda-8.0/bin
export CUDA_LIB=/usr/local/cuda-8.0/lib64
export PATH=${CUDA_BIN}:$PATH
export LD_LIBRARY_PATH=${CUDA_LIB}:$LD_LIBRARY_PATH

4.Google Protocol Buffers安装。

我们使用的是release版本,地址为https://github.com/google/protobuf/releases,找到相应版本,我们使用的是protoc-3.1.0-linux-x86_64.zip。下载解压后,将bin目录下的protoc放到/usr/local/bin/,将include目录下的google文件夹放到/usr/local/inculde/。然后将相关的环境变量添加好。
export PATH="/usr/local/bin:$PATH"
测试protocol buffers有没有安装好可以使用以下命令:
protoc -version
会出现:
libprotoc 3.1.0

5.基本的环境变量已经配置好,现在下载DeepNet,下载地址:https://github.com/nitishsrivastava/deepnet

下载解压后包含三个文件夹:cudamat,deepnet,eigenmat

其中deepnet文件夹中包含了训练、可视化以及基本网络和相应的层等Python代码。

eigenmat文件夹中主要文件是eigenmat.cc,当训练时使用的是CPU时,模型调用eigenmat。

cudamat文件夹中主要文件是cudamat.cu,当训练时使用的是GPU是,模型调用cudamat。

具体内容将在以后的文章中提出。

6.编译cudamat。
cd cudamat
make

7.编译eigenmat。

需要安装eigen,官网下载解压到根目录下,添加相应环境变量,然后再到/eigenmat目录中,make就好了。使用CPU的需要进行此步,因为我们使用的是GPU,没有用到CPU,因此跳过此步。

8.添加DeepNet相应的环境变量。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$/home/pb/deepnet-master/cudamat
export PYTHONPATH=$PYTHONPATH:/home/pb/deepnet-master
如果使用CPU,还需要将eigenmat目录添加到环境变量中。

9.测试DeepNet。

下载MNIST数据集,下载地址:http://www.cs.toronto.edu/~nitish/deepnet/mnist.tar.gz

cd到deepnet/deepnet/examples目录下运行:
python setup_examples.py <path to mnist dataset> <output path>
这句话主要是配置数据集的路径以及输出路径,然后进入到/deepnet/examples中的任意一个文件夹,如/home/pb/deepnet-master/deepnet/examples/rbm中执行:
./runall.sh
这就开始训练RBM模型了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 深度学习