【intel processors】使用matlab coder将神经网络转化为c/c++

需要将神经网络部署在dsp中,要求是c/c++语言,因为matlab coder工具箱可以直接将.m文件转化为c/c++语言,所以本文章用以说明使用使用matlab coder将神经网络转化为c/c++的过程。

1 前期准备

1.1 工具包

为了使用matlab coder来生成神经网络的代码,必须提前下载:

  • Deep Learning Toolbox™
  • MATLAB Coder Interface for Deep Learning Libraries
    可以使用 MATLAB Coder 为部署到 Intel® 或 ARM® 处理器的深度学习网络生成 C++ 代码。 生成的代码利用针对目标 CPU 优化的深度学习库。 硬件和软件要求取决于目标平台。还可以使用 MATLAB Coder 为深度学习网络生成通用 C 或 C++ 代码。 此类C或C++代码不依赖于任何第三方库。

1.2 software libraries

Intel Math Kernel Library for Deep Neural Networks (MKL-DNN), v1.4.
PS:注意一定要是1.4版本的。
PPS:CrossChannelNormalizationLayer norm1 is not supported for target library ‘none’,如果不安装mkldnn有些层是不支持的,但是本项目要求不能使用第三方库,所以应该不安装mkldnn这一第三方库。

1.2.1 安装mkldnn库的具体步骤为:

方法一:

  • 下载1.4版本的MKL-DNN。下载网址见https://github.com/oneapi-src/oneDNN/releases?q=1.4&expanded=true
  • 下载CMAKE,网址见https://cmake.org/download/
    注意,下载红框iso文件,zip一直编译失败。
    在这里插入图片描述
  • 直接运行CMake-gui.exe,在"where is the source code"中输入“C:/Program Files/mkl-dnn”,在"where to build the binaries"中输入“C:/Program Files/mkl-dnn/build”,然后点击左下角的Configure按钮,最后点击Generate即可生成。
  • PS:在我自己运行时,出现了几点问题,首先点击Configure按钮时,显示没有cmakelist.txt文件,所以我将examples文件夹下的cmakelist.txt复制到了mkl-dnn文件夹下,然后Configure+Generate,此时发现mkl-dnn文件夹下新增了一个lib文件夹,里面多了dnnl.lib和mkldnn.lib两个文件,再matlab转换就成功了。

方法二:具体操作见论坛MATLAB Coder: How do I build the Intel MKL-DNN library for Deep Learning C++ code generation and deployment?
在这里插入图片描述

1.3 c++ compiler

主流编译器是mingw-w64或Microsoft Visual C++ 2022 product family(Community, Professional, and Enterprise editions are supported.),其中mingw-w64的c和c++的编译器分别是gcc和g++,Microsoft Visual的编译器是msv.
PS:在下载VS的时候,the “Desktop development with C++” workload is required for MEX and associated functionality,所有需要勾选和C++、mex有关的安装项。具体见解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)
PPS:如果已安装了VS,但matlab mex -setup命令仍找不到编译器
具体见Matlab配置编译器(Matlab2020b+

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kiki酱。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值