Ubuntu下安装MxNet

本文是2017.1月份的时候安装的步骤, 现在可能有些已经不适用, 请大家注意鉴别.

http://blog.csdn.net/u012436149/article/details/52554176 >Ubuntu 16.04 Cuda7.5 tensorflow0.10.0-gpu
http://phunter.logdown.com/posts/314562 >用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 tensorflow0.10.0-gpu

安装依赖:

sudo apt-get update
sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev

下载mxnet源码用于编译:

Install git if not already installed.

sudo apt-get update
sudo apt-get -y install git

下载源码:

git clone --recursive https://github.com/dmlc/mxnet

安装nvidia驱动程序

将nouveau加入黑名单
sudo gedit /etc/modprobe.d/blacklist.conf  
将下面的代码加到文件最后:
 blacklist nouveau
重启电脑

这么做的目的是禁用Ubuntu自带的显卡驱动,为我们下面安装NVIDIA显卡驱动做准备.

安装驱动的时候, 需要关闭XWIN

Ctrl+Alt+F1进入命令行界面;
接着:

sudo service lightdm stop  
sudo rm /tmp/.X0-lock  (删除此文件,如果本来就没有的话,就会报错)

在完成这一步的时候, 我使用了另一台PC, 用ssh远程登录:

ssh elijha@192.168.1.110

然后输入密码即可远程登录.

安装驱动
sudo apt-get remove --purge nvidia-*

sudo rm /etc/X11/xorg.cong   
sudo apt-add-repository ppa:graphics-drivers/ppa -y  

sudo apt-get update  
sudo apt-get install nvidia-367 nvidia-settings nvidia-prime(这里需要注意,367代表驱动的版本;其实后面下载的CUDA里面自带了一个显卡驱动,但是未必是最新的. 这里的目的就是手动下载最新的显卡驱动)   
sudo apt-get install mesa-common-dev   
sudo apt-get install freeglut3-dev   
sudo ldconfig -n   
sudo update-initramfs -u

重启电脑,就可以进入界面了, 如果进不去,进入BIOS启动页面,在Boot(或Security)中找到Security BOOT ,将其disable就可以了.

查看驱动
nvidia-prime query    
lspci | grep VGA //显示显卡信息

其实上面两步我也不知道是在干嘛, 反正输出的消息八成就没毛病了. 我装的时候没出问题.

安装CUDA

前往 https://developer.nvidia.com/cuda-downloads 选择对应的安装方式。国内读者建议网络安装方式deb(network),这样ubuntu会选择就近的国内的源安装,速度可能比较快。
(注: 实际安装的时候发现用apt-get并不快,因为它还是从developer.nvidia…下载的, 所以和apt源无关)
按照NVIDIA给的命令下载好了之后, 在terminal中找到下载好的.run文件所在的目录, 直接执行:

./cuda_8.0.44_linux.run

改一下环境变量:

~$ sudo gedit .bashrc  

文件尾加入:

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

保存退出. 然后执行:

source .bashrc  

之后可以通过下面命令查看你的显卡使用情况:

nvidia-smi

这里写图片描述
测试一下cuda有没有装好:

测试1
cd /usr/local/cuda/samples/1_Utilities/deviceQuery  
sudo make  
sudo ./deviceQuery  //能执行表示正确
测试2:
cd ../../5_Simulations/nbody/  
sudo make    
./nbody -benchmark -numbodies=256000 -device=0  //能执行表示正确

安装CuDNN

暂时还没做, 复制了http://phunter.logdown.com/posts/314562 >用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 tensorflow0.10.0-gpu以备今后的需要.
可选安装:Mxnet也支持cuDNN,它是nVidia推出的深度学习加速工具包,能高效实现一些卷积等深度学习常用操作,在内存使用和计算速度上面能有所提高。大家可以到这里 https://developer.nvidia.com/cudnn 申请开发者项目,如果批准通过可以下载安装cuDNN工具包,具体请参照nVidia官方教程。

编译支持GPU的MXnet

在~/mxnet/目录里找到mxnet/make/子目录,把该目录下的config.mk复制到mxnet/目录,用文本编辑器打开,找到并修改以下几行:

USE_CUDA = 1
USE_CUDA_PATH = /usr/local/cuda

如果用户选择安装atlas或者openblas等其他BLAS的实现,需要额外的修改。如果ubuntu的atlas实现(sudo apt-get install libatlas-base-dev或者sudo apt-get install libopenblas-dev),需要修改为:

USE_BLAS = atlas

或者

USE_BLAS = openblas

(注: 打开config.mk, 发现里面本来就是USE_BLAS = atlas; 而正好前面下载的依赖项中, 本身就是libatlas-base-dev,所以不用改.)

安装Python对mxnet的语言支持(还有R, scala等, 我没用到所以没做)

这里我有点忘了, 当时按mxnet官方教程走完之后好像就可以直接在pycharm里调用mxnet的API了. 但是好像别人的博客里执行的东西和官方不一样, 这里都记录下来了:

Mxnet官方给的方法:

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
博客里面见到的方法:

在Mxnet目录中执行:

cd python; python setup.py install

然后说要安装numpy, 我也不知道我是怎么就自己装上了. 安装的命令如下:

sudo apt-get install python-numpy

下面几个不知道干什么用, mxnet官方教程是这么写的, 但是别人的博客里没提到, 可能可以不装:

Next, we install graphviz library that we use for visualizing network graphs you build on MXNet. We will also install Jupyter Notebook used for running MXNet tutorials and examples.

sudo apt-get install -y python-pip
sudo pip install graphviz
sudo pip install Jupyter

测试一下mxnet能否运行:

测试方法1: 可以按照Mxnet官方的方法, 在命令行中逐行输入下面命令:
python
import mxnet as mx
a = mx.nd.ones((2, 3), mx.gpu())
print ((a * 2).asnumpy())

会显示

[[ 2.  2.  2.]
[ 2.  2.  2.]]

这里出现了意见很夭寿的事情…这时候在Ubuntu的terminal中逐行执行,以及在pycharm中写成一个.py文件然后执行,都能正确输出结果; 但是从pycharm的terminal中逐行执行, 就始终报错, 让我用”USE_CUDA = 1” 重新编译mxnet来生成新的dmlc-core文件夹里的东西… 玄学…

测试方法2: 在mxnet路径下执行
sudo python example/image-classification/train_mnist.py

这时可能会报错, 提示在import requests时没有这个包. requests包是一个和http什么什么有关的东西, 我估计是首次执行的时候需要自动下载数据集, 而下载的命令写在train_mnist.py中, 调用了requests里的api. 这里手动下载一下就行了:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值