MXNet源码级构建过程

两个步骤:
1、根据MXNet的C++源码文件构建libmxnet共享库
2、安装Python语言依赖包
外加一个测试部分

第一步:

构建环境要求:

C++编译器支持C11标准,系统安装有Git以及GNUMake工具。由于本系统是Ubuntu 14.04LTS,需要的操作如下:
命令:

sudo apt-get update && sudo apt-get install build-essential git

至此,构建环境准备完毕。

安装BLAS库

命令:

sudo apt-get install libatlas-base-dev

键入命令后出现以下错误:

E: Unable to locate package libatlas-bas-dev

原因:为了安装libatlas需要安装以下Python依赖包

python-numpy 
python-scipy 
python-matplotlib 
ipython 
ipython-notebook 
python-pandas 
python-sympy 
python-nose 

键入命令:

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

然而,会在最后两行出现以下提示:

/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接

原因:系统找的是一个符号连接,而不是一个文件。这应该是个bug….
解决方法:
1.对这两个文件更名;2.重新建立符号连接
下面是具体命令

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

然后,重新键入

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

然后,键入

sudo apt-get install libatlas-base-dev

至此libatlas安装完成

安装OpenCV

sudo apt-get install libopencv-dev

OpenCV安装顺利

构建libmxnet共享库

下载mxnet源文件

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

下载完成,目录切换到mxnet文件夹下

make

至此,libmxnet共享库安装完成

第二步:构建Python依赖包

sudo apt-get install python-dev python-numpy

至此安装完成

第三步,测试

以下是测试部分
~/mxnet/python/目录下操作,键入:

python

MXNet提供两种编程接口:imperative n-demensional array interface,symbolic programing interface。
接口1: imperative n-demensional array interface

>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3))
>>> b = a * 2 + 1
>>> b.asnumpy()  # print b by converting to a numpy.ndarray object
array([[ 3.,  3.,  3.],
       [ 3.,  3.,  3.]], dtype=float32)

接口二:symbolic programing interface

>>> a = mx.sym.var('a')  # it requires the latest mxnet
>>> b = a * 2 + 1  # b is a Symbol object
>>> c = b.eval(a=mx.nd.ones((2,3)))
>>> c[0].asnumpy()  # the list of outputs
array([[ 3.,  3.,  3.],
       [ 3.,  3.,  3.]], dtype=float32)

都能得到预期结果,至此,MXNet依赖库测试完毕,MXNet依赖库安装成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值