讲讲我在Linux上安装和配置MXNet的经历

来源:互联网 发布:2016中国汽车出口数据 编辑:程序博客网 时间:2024/06/02 19:03

本人之前用的都是Caffe框架,最近碰到一个python程序是用MXNet框架实现的,主要是因为“Import mxnet as mx;"时会报No module的错误,故需要安装和配置MXNet。

回忆当初配置Caffe时的血泪史,我的内心其实是拒绝的,但好就好在MXNet依赖项不多,难度跟Caffe不在一个等级。

废话不多说,博主用的是Ubuntu系统,而且之前已经配好了CUDA、cuDNN、OpenCV等等,先从GitHub拷贝了dmlc/mxnet到服务器上,按照各种大佬的博客里说的,修改了config.mk后进行make,(注意需要g++版本在4.8以上,可以用g++ --version来查看g++版本,不然会报错)。

然而make不出意外还是报错了,报错的内容是找不到ippicv这个包,具体如下:


看到dmlc/mxnet的issues里也有仁兄报了同样的错误,他最终是安装了ippicv从而避免了报错。我也网上查了下,这个貌似跟OpenCV是有关系的,然后也捣鼓了一番。最终求助于服务器管理员师兄==。。。

结果我还是too naive了,MXNet官网给的install教程里,除了Build from Source这种方法,还可以用Pip来安装。

鉴于其他依赖项早就装好了,只需一行代码!


这样就OK了,让我们来检验一下,在python里import mxnet:


成功!

-----------------------------------2017.7.9日更新------------------------------------

上述内容讲了使用pip来安装mxnet的方法,但是该方法的弊端在于安装后找不到mxnet文件夹,如果你要到文件夹里改些东西就不方便了。本人于是又去尝试了从源码安装,并成功解决了之前遇到的问题!方法如下:

之前报错找不到 -lippicv,这是OpenCV的一个库,于是我干脆在config.mk中将USE_OPENCV从1置成了0,就不会报这个错误了,编译成功!接下来试试import mxnet。

import的时候报了一个OSError,说version...(具体忘记了,issues里有同样的问题,照着方法解决就好了) not found,于是我又把USE_OPENMP置成了0。随后又报了一个OSError,如下


博主提供一种方法,亲测有效:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8

If it returns CXXABI_1.3.8. Then you can do the copying.

$ cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/jj/anaconda2/bin/../lib/libstdc++.so.6

这时候我们再import mxnet:


又成功啦!


--------------咳,忘记备注了,上述import mxnet前需要关联一下python路径-------------

直接在服务器中输入下列命令即可:

export PYTHONPATH=~/mxnet/python

cp -r ~/mxnet/python/mxnet .

cp ~/mxnet/lib/libmxnet.so mxnet/

原创粉丝点击