mxnet的C/C++接口编译
Python的版本的mxnet版本用来训练、验证及测试算法效果还比较方便,但是实际部署则需要C/C++接口,因此需要编译相应接口以方便部署。
一、编译环境之windows10(编译出动态库libmxnet.dll、libmxnet.lib及include头文件)。
一)环境及依赖、
- Windows10
- Cuda10.1
- Cudnn7.5.1
- Cmake 3.15.0
- Opencv3.4.2
- OpenBLAS-v0.2.19-Win64-int32
- Vs2015
二)、编译步骤
- 下载源码
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的生成。
4、Vs2015中编译(x64)
5、生成C++依赖头文件 op.h
为了能够使用C++原生接口,这一步是很关键的一步,目的是生成mxnet C++程序依赖的op.h文件,如果直接指向编译mxnet并使用C++, 在mxnet/cpp-package/scripts目录,将所有依赖到的dll拷贝进来。
运行命令:python OpWrapperGenerator.py libmxnet.dll
出现这个错误,不知道什么原因,为避免在使用时报错暂时将这几个函数注释掉。
三)C接口的使用
头文件:mxnet/include/mxnet/
创建一个简单的vs2015工程,参考mxnet中的example,目录位置:
mxnet_\example\image-classification\predict-cpp。
编译后,x64\Release下
CMD命令行运行:mxnet_c_api_demo.exe 1.jpg 1
完整工程,打开编译既可以用:https://github.com/SyGoing/mxnet_c_api_demo-in-vs2015
后续上传实现的LFFD的C_API版本及ncnn移植版本
二、编译环境之ubuntu16.04(待续)