深度学习入门——环境搭建

本篇文章介绍了Ubuntu16.04系统中,使用Python2的 CUDA8.0、cuDNN5.1、MXNet、TensorFlow、Keras框架的环境搭建。

深度学习框架介绍

安装之前先来介绍一下使用的深度学习框架。需要明确的是,各个框架的地位是不同的,有的更底层,有的则是在其他框架的基础上建立起来的。

1、CUDA、cuDNN
这两个框架是NVIDIA公司提供的GPU加速计算框架。cuDNN(CUDA Deep Neural Network library)则是更加专门的针对深度加速的框架。要使用GPU加速必须安装这两个框架。

2、TensorFlow
TensorFlow非常火热,是Google开源的深度学习框架。未来前景我认为应该很不错。

3、MXNet、Keras
z这两个库是在深度学习框架中处于高层的库,Keras是以TensorFlow以及Theano为底层计算框架的。因此理论上说,使用这两个框架,开发神经网络会非常简单。类似的框架还有Caffe等。

安装CUDA

嗯,安装之前,首先确定自己的显卡是否支持CUDA,要查看自己显卡的版本,输入命令:$ lspci | grep -i nvidia,然后在NVIDIA网站查看所支持的型号。界面如下:
这里写图片描述

接下来开始下载。来到CUDA官方下载地址,选择对应系统版本(我的是ubuntu16.04),选择安装类型为 deb(local),开始下载。文件稍大,接近2G。注意下载界面下方的安装指导,文件下载好后根据该指导进行安装。输入以下命令:

$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda

我的安装一帆风顺,没有什么问题,如果出现问题,建议参考官方的安装指南进行排查。

接着修改环境变量。在终端输入这两句:

$ export PATH=/usr/local/cuda-8.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

然后修改文件中环境变量设置$ sudo vi /etc/profile,输入上面export的两句,保存,退出。终端输入$ sudo ldconfig使环境变量立刻生效。

接下来测试CUDA是否安装成功,终端输入$ nvidia-smi得到当前GPU的使用情况,看起来应该像这样:
这里写图片描述

再编译一个例子来检验,控制台输入:

$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$ make
$ sudo ./deviceQuery

控制台会显示很多GPU的信息,如果最后一行显示Result = PASS,那就说明安装成功了。

安装cuDNN

来到cuDNN官方下载地址,首先点击注册,并通过邮箱激活,然后登录选择下载。

下载好后,解压缩,发现两个文件夹,中有一些文件。只要将文件复制到CUDA的目录下即可。控制台中输入:

$ tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz #解压缩
$ cd cuda  # 进入解压缩的得到的目录
$ sudo cp include/cudnn.h /usr/local/cuda/include/    #复制头文件
$ sudo cp lib64/* /usr/local/cuda/lib64/    #复制动态链接库
$ cd /usr/local/cuda/lib64/
$ sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件
$ sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5  #生成软衔接
$ sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

这样cuDNN就安装好了。

安装MXNet

我的安装是跟据官方的安装说明来的。ubuntu平台有快速安装和标准安装两种方法。我选择了快速安装。

首先确保安装了git,如果没有,控制台输入$ sudo apt-get -y install git安装。然后:

# Clone mxnet repository. In terminal, run the commands WITHOUT "sudo"
$ git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive

# Install MXNet for Python with all required dependencies
$ cd ~/mxnet/setup-utils
$ bash install-mxnet-ubuntu-python.sh

# We have added MXNet Python package path in your ~/.bashrc.
# Run the following command to refresh environment variables.
$ source ~/.bashrc

c注意,这样的方式安装的MXNet是不支持CUDA的。如果要使用CUDA,在运行install-mxnet-ubuntu-python.sh这个脚本之前,需要先对安装进行配置。方法如下:

$ cd ~/mxnet
$ cp ./make/config.mk . #将安装配置文件拷贝到主目录
$ sudo gedit config.mk  #修改配置文件

z在配置文件中修改以下几项:

USE_CUDA = 1 #使用CUDA
USE_CUDA_PATH = /usr/local/cuda #指定CUDA路径
USE_CUDNN = 1  #使用cuDNN

如果已经安装了没有CUDA版本的MXNet,没有关系,修改配置文件,重新运行一遍install-mxnet-ubuntu-python.sh就可以了。

~/mxnet/example目录下有许多实例,MXNet官网也有。尝试一个实例来检验是否安装成功。我根据官网的教程,实现了一个卷积神经网络来分类MNIST手写数字。5万张的训练集,最后验证集的准确率达到了98.8%,耗时2分钟。

安装TensorFlow和Keras

f当安装好了CUDA,这两个库就非常容易了,使用pip即可。不过要注意,TensorFlow有CPU和GPU两个版本,GPU版本名称是tensorflow-gpu。命令如下:

$ pip install tensorflow-gpu
$ pip install keras

使用Keras的Github项目中的example进行测试,同样用CNN在MNIST数据集上测试。最后结果和MXNet一样,也是98.8%。

总结

网上很多环境搭建的教学和介绍,不同的作者使用的系统环境和库的版本可能都不一样。有些方法在我看来也走了一些弯路。我认为最好的资料还应该是官方给出的说明。其次才是其他网络资料。另外自己应该对所安装的框架、使用的系统、常用的安装方法有所了解,这样才有能力对出现的问题做出正确的判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值