mxnet的C/C++接口编译

                                 mxnet的C/C++接口编译

    Python的版本的mxnet版本用来训练、验证及测试算法效果还比较方便,但是实际部署则需要C/C++接口,因此需要编译相应接口以方便部署。

一、编译环境之windows10(编译出动态库libmxnet.dll、libmxnet.lib及include头文件)。

一)环境及依赖、

  1. Windows10
  2. Cuda10.1
  3. Cudnn7.5.1
  4. Cmake 3.15.0
  5. Opencv3.4.2
  6. OpenBLAS-v0.2.19-Win64-int32
  7. Vs2015

 

二)、编译步骤

  1. 下载源码

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

      2、准备好依赖库

这里仅仅给出openblas下载地址(其他依赖百度即可):

https://sourceforge.net/projects/openblas/files/v0.2.19/

     3、Cmake-gui生成vs2015的.sln

根据出现红色提示配置三方依赖库(加入opencv3.4.2目录、加入openblas库libopenblas.dll.a),然后点击configure 和Generating 完成.sln的生成。

 

mxnet的C/C++接口编译_第1张图片

 

   4、Vs2015中编译(x64)

mxnet的C/C++接口编译_第2张图片

 

 5、生成C++依赖头文件 op.h

为了能够使用C++原生接口,这一步是很关键的一步,目的是生成mxnet C++程序依赖的op.h文件,如果直接指向编译mxnet并使用C++, 在mxnet/cpp-package/scripts目录,将所有依赖到的dll拷贝进来。

mxnet的C/C++接口编译_第3张图片

运行命令:python OpWrapperGenerator.py libmxnet.dll

mxnet的C/C++接口编译_第4张图片

出现这个错误,不知道什么原因,为避免在使用时报错暂时将这几个函数注释掉。

三)C接口的使用

   头文件:mxnet/include/mxnet/

mxnet的C/C++接口编译_第5张图片

 

 

创建一个简单的vs2015工程,参考mxnet中的example,目录位置:

mxnet_\example\image-classification\predict-cpp。

mxnet的C/C++接口编译_第6张图片

mxnet的C/C++接口编译_第7张图片

 

mxnet的C/C++接口编译_第8张图片

编译后,x64\Release下

mxnet的C/C++接口编译_第9张图片

CMD命令行运行:mxnet_c_api_demo.exe 1.jpg 1

mxnet的C/C++接口编译_第10张图片

 

完整工程,打开编译既可以用:https://github.com/SyGoing/mxnet_c_api_demo-in-vs2015

后续上传实现的LFFD的C_API版本及ncnn移植版本

二、编译环境之ubuntu16.04(待续)

你可能感兴趣的:(算法的工程部署与移植)