cnncodegen
为深度学习网络生成代码以定位手臂马里GPU
描述
例子
生成C ++代码,以用于验证的网络以在ARM处理器上运行
利用cnncodegen
为了生成验证网络的C ++代码,以部署到ARM MALI图形处理器。
通过使用该验证的GoogLenet模型Googlenet
(深度学习工具箱)功能。此功能需要GoogleNet网络的深学习Toolbox™模型。如果您尚未安装此支持包,则该功能提供了下载链接。万博1manbetx或者,请参见//www.tianjin-qmedu.com/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-network。
net = googlenet;
通过使用cnncodegen
和“ targetlib'
调成'臂计算 - 麦利'
。默认情况下,代码生成器目标版本'19 .05'
手臂。要定位不同版本的计算库,请使用“臂章”
范围。
cnncodegen(net,“ targetlib',,,,'臂计算 - 麦利'...,,,,“目标帕拉姆”,struct(struct(“臂章”,,,,'19 .02');
---------------------------------------------------------------------------------------------------------- Compilation suppressed: generating code only.------------------------------------------------------------------------------------------------------------------ ### Codegen成功生成了为ARM设备生成的
代码生成器生成.cpp
和标题文件'/pwd/codegen'
文件夹。DAG网络被生成为C ++类称为cnnmain
,包含87层类的数组。代码生成器减少了层的数量是卷积和批处理标准化层的图层融合优化。这设置()
该类的方法设置了手柄并为每个层对象分配资源。这预测()
方法调用网络中87层中的每一层的预测。这清理()
方法释放为每个图层对象分配的所有内存和系统资源。所有的二元重量(CNN _ ** _ W
)和偏差文件(CNN _ ** _ b
)对于网络的卷积层存储在代码根
文件夹。
要构建库,请将生成的代码移至ARM目标平台并使用生成的Makefilecnnbuild_rtw.mk
。
输入参数
网
-预处理深度学习网络对象
角色向量|字符串标量
预估计系列网络
或者dagnetwork
目的。
笔记
cnncodegen
不支持万博1manbetxdlnetwork
对象。
靶标
-特定于库的参数
结构体
ARM计算图书馆特定参数指定为1
-经过-1
结构包含这些表中描述的字段。
场地 |
描述 |
---|---|
臂章 |
目标硬件上的ARM计算库的版本,指定为 |
版本历史记录
在R2017b中引入R2021A:对目标库支持的更改万博1manbetx
来自R2021b,cnncodegen
(GPU编码器)函数生成C ++代码和MakeFiles,仅通过使用ARM Compute库来构建ARM MALI GPU处理器构建静态库,用于计算机视觉和机器学习。
对于所有其他目标,请使用代码根
命令。在MATLAB中编写一个入口点功能®使用coder.loaddeeplearningnetwork
(GPU编码器)功能加载深度学习模型并调用预测
(深度学习工具箱)预测响应。例如,
功能out = googlenet_predict(in)%#codegen执着的mynet;如果isempty(mynet)mynet = coder.loaddeeplearningnetwork('googlenet');结尾%通过输入out =预测(mynet,in);
该表显示了一些典型用法cnncodegen
以及如何更新您的代码代码根
反而。
目标工作流程 | 不建议 | 推荐的 |
---|---|---|
ARM CPU处理器支持万博1manbetx |
设置 cnncodegen(net,“ targetlib'...,,,,“手臂计算”,,,,“目标帕拉姆”...,struct(struct(“臂章”...,,,,'19 .02',,,,“手臂结构”...,,,,'armv8')) 其他支持版本万博1manbetx的ARM计算库是 您可以将手臂架构指定为 |
创建一个 cfg = coder.config('lib');cfg.targetlang ='C ++'; 创建一个 dlcfg = coder.deeplearningconfig...((“手臂计算”);dlcfg.armarchitecture ='armv8';dlcfg.armcomputeversion ='19 .02';cfg.deeplearningconfig = dlcfg; 使用 arg = {一个(224,224,3,'单身的')};代码根-argsarg...-configCFGGooglenet_predict 有关更多信息,请参阅代码生成与基于“增大化现实”技术的深度学习网络M Compute Library。 |
nvidia®使用CUDA的GPU®深神经网络图书馆(Cudnn) |
设置 cnncodegen(net,“ targetlib'...,,,,'cudnn',,,,“计算能力”...,,,,'7.0',,,,“目标帕拉姆”...,struct(struct('自动调节',真的...,,,,'数据类型',,,,'int8'...,,,,'CalibibrationResultFile'...'myint8cal.mat')) 自动调整功能使Cudnn库可以找到最快的卷积算法。 这 |
创建一个 cfg = coder.gpuconfig('lib');cfg.targetlang ='C ++'; 要设置代码生成的最小计算功能,请使用 cfg.gpuconfig.computecapability ='7.0';
创建一个深度学习配置对象。指定深度学习配置对象的目标库特定属性。分配给 dlcfg = coder.deeplearningconfig('cudnn');dlcfg.autotuning = true;dlcfg.datatype ='int8';dlcfg.calibrationResultFile ='myint8cal.mat';cfg.deeplearningconfig = dlcfg; 使用 arg = {一个(224,224,3,'单身的')};代码根-argsarg...-configCFGGooglenet_predict 有关更多信息,请参阅使用Cudnn的深度学习网络代码生成(GPU编码器)。 |
英特尔®CPU处理器 |
要将英特尔数学内核库用于深神经网络(MKL-DNN),以设置 cnncodegen(net,“ targetlib'...,,,,'mkldnn'); |
创建一个 cfg = coder.config('lib');cfg.targetlang ='C ++'; 创建一个 dlcfg = coder.deeplearningconfig...(('mkldnn');cfg.deeplearningconfig = dlcfg; 使用 arg = {一个(224,224,3,'单身的')};代码根-argsarg...-configCFGGooglenet_predict 有关更多信息,请参阅使用MKL-DNN的深度学习网络代码生成。 |
NVIDIA GPU通过使用NVIDIA Tensorrt™,高性能深度学习推理优化器和运行时库 |
设置 cnncodegen(net,“ targetlib'...,,,,'tensorrt',,,,“计算能力”...,,,,'7.0',,,,“目标帕拉姆”...,struct(struct('数据类型',,,,'int8'...'Datapath',,,,'image_dataset'...,,,,“数字启动键”,50)) |
创建一个 cfg = coder.gpuconfig('lib');cfg.targetlang ='C ++'; 要设置代码生成的最小计算功能,请使用 cfg.gpuconfig.computecapability ='7.0';
创建一个 dlcfg = coder.deeplearningconfig...(('cudnn');dlcfg.datatype ='int8';dlcfg.datapath ='image_dataset';dlcfg.numcalibrationbatches = 50;cfg.deeplearningconfig = dlcfg; 使用 arg = {一个(224,224,3,'单身的')};代码根-argsarg...-configCFGGooglenet_predict 有关更多信息,请参阅通过使用nvidia tensorrt进行深度学习预测(GPU编码器)。 |
常规选项 |
生成代码,而无需生成和构建makefile。例如, cnncodegen(net,“ targetlib'...,,,,'mkldnn',,,,'codegenly',1); |
要生成源代码,而无需调用make命令或构建对象代码,请使用 cfg = coder.codeconfig('lib');cfg.gencodeonly = true;
|
指定NVIDIA GPU计算功能的编译。参数采用的格式 cnncodegen(net,“ targetlib'...,,,,'cudnn',,,,“计算能力”,,,,'7.0'); |
要设置代码生成的最小计算功能,请使用 cfg = coder.gpuconfig('lib');cfg.gpuconfig.computecapability ='7.0'; |
也可以看看
功能
话题
matlab命令
您单击了与此MATLAB命令相对应的链接:
通过在MATLAB命令窗口中输入该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
如何获得最佳网站性能
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
美洲
- AméricaLatina(Español)
- 加拿大(英语)
- 美国(英语)