cnncodegen
生成代码的深度学习网络的目标手臂马里GPU
语法
描述
cnncodegen (
生成c++代码通过使用指定的网络对象的手臂®计算库马里gpu。净
“targetlib”,“arm-compute-mali”)
产品和要求GPU编码器™为深入学习GPU编码器接口。
cnncodegen (
生成c++代码指定的网络对象通过使用手臂计算库马里gpu和额外的代码生成选项。净
,‘targetlib’,‘arm-compute-mali’,targetparams
)
例子
生成c++代码Pretrained网络运行在ARM处理器
使用cnncodegen
生成c++代码pretrained网络部署到一只手臂马里图形处理器。
通过使用得到pretrained GoogLeNet模型googlenet
(深度学习工具箱)函数。这个函数需要深度学习工具箱™模型GoogLeNet网络。如果您还没有安装这种支持包,这个函数提供一个下载链接。金宝app另外,看到//www.tatmou.com/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-network。
网= googlenet;
通过使用生成代码cnncodegen
与“targetlib”
设置为“arm-compute-mali”
。默认情况下,代码生成器目标版本“19.05”
的手臂。针对不同版本的计算库,使用“ArmComputeVersion”
参数。
cnncodegen(净,“targetlib”,“arm-compute-mali”…,“targetparams”结构(“ArmComputeVersion”,“19.02”));
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -编译抑制:生成代码。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # # Codegen成功生成的手臂装置
代码生成器生成的. cpp
的头文件“/ pwd / codegen”
文件夹中。生成DAG网络作为一个c++类CnnMain
87层类的,包含一个数组。代码生成器减少层数是通过层融合优化卷积和批处理标准化层。的设置()
这个类的方法设置为每一层对象处理和分配资源。的预测()
方法调用预测网络中为每个87层。的清理()
方法释放所有内存和系统资源分配给每一层对象。所有的二进制权重(cnn_ * * _w
文件()和偏见cnn_ * * _b
)的卷积层网络存储在codegen
文件夹中。
建立图书馆,将生成的代码移动到手臂目标平台和使用生成的makefilecnnbuild_rtw.mk
。
输入参数
净
- - - - - -Pretrained深入学习网络对象
特征向量|字符串标量
PretrainedSeriesNetwork
或DAGNetwork
对象。
请注意
cnncodegen
不支持金宝appdlnetwork
对象。
targetparams
- - - - - -特有的参数
结构
臂计算方式指定为一个参数1
——- - - - - -1
包含这些表中描述字段的结构。
场 |
描述 |
---|---|
ArmComputeVersion |
版本的手臂计算库在目标硬件,指定为 |
版本历史
介绍了R2017bR2021a:更改目标库支持金宝app
从R2021b,cnncodegen
函数生成c++代码和makefile构建一个静态库只手臂马里GPU处理器通过使用手臂计算库为计算机视觉和机器学习。
对于所有其他目标,使用codegen
命令。用MATLAB写一个入口点函数®使用coder.loadDeepLearningNetwork
并调用函数加载一个深度学习模型预测
(深度学习工具箱)预测的响应。例如,
函数= googlenet_predict(中)% # codegen持续的mynet;如果isempty (mynet) mynet = coder.loadDeepLearningNetwork (“googlenet”);结束%通过输入=预测(mynet,);
这个表显示的一些典型用法cnncodegen
和如何更新你的代码来使用codegen
代替。
目标工作流程 | 不推荐 | 推荐 |
---|---|---|
手臂CPU处理器支持金宝app |
设置 cnncodegen(净,“targetlib”…,“arm-compute”,“targetparams”…结构(“ArmComputeVersion”…,“19.02”,“ArmArchitecture”…,“armv8”)) 其他受支持版金宝app本的手臂计算库 您可以指定ARM体系结构 |
创建一个 cfg = coder.config (“自由”);cfg。TargetLang =“c++”; 创建一个 dlcfg = coder.DeepLearningConfig…(“arm-compute”);dlcfg。ArmArchitecture =“armv8”;dlcfg。ArmComputeVersion =“19.02”;cfg。DeepLearningConfig = dlcfg; 使用 arg = {(224224 3“单一”)};codegenarg游戏参数…配置cfggooglenet_predict 有关更多信息,请参见代码生成与臂计算深度学习网络图书馆。 |
英伟达®使用CUDA gpu®深层神经网络库(cuDNN) |
设置 cnncodegen(净,“targetlib”…,“cudnn”,“ComputeCapability”…,“7.0”,“targetparams”…结构(自动调谐的,真正的…,“数据类型”,“INT8”…,“CalibrationResultFile”…“myInt8Cal.mat”)) 自动调谐特性允许cuDNN图书馆找到最快的卷积算法。 的 |
创建一个 cfg = coder.gpuConfig (“自由”);cfg。TargetLang =“c++”; 设置最低计算代码生成功能,使用 cfg.GpuConfig。ComputeCapability =“7.0”;
创建一个 dlcfg = coder.DeepLearningConfig (“cudnn”);dlcfg。自动调谐= true;dlcfg。数据类型=“int8”;dlcfg。CalibrationResultFile =“myInt8Cal.mat”;cfg。DeepLearningConfig = dlcfg; 使用 arg = {(224224 3“单一”)};codegenarg游戏参数…配置cfggooglenet_predict 有关更多信息,请参见通过使用cuDNN代码生成深度学习网络。 |
英特尔®CPU处理器 |
使用英特尔数学内核库深层神经网络(MKL-DNN)英特尔cpu,设置 cnncodegen(净,“targetlib”…,“mkldnn”); |
创建一个 cfg = coder.config (“自由”);cfg。TargetLang =“c++”; 创建一个 dlcfg = coder.DeepLearningConfig…(“mkldnn”);cfg。DeepLearningConfig = dlcfg; 使用 arg = {(224224 3“单一”)};codegenarg游戏参数…配置cfggooglenet_predict 有关更多信息,请参见代码生成与MKL-DNN深度学习网络。 |
NVIDIA gpu通过使用NVIDIA TensorRT™,高性能深度学习推理优化器和运行时库 |
设置 cnncodegen(净,“targetlib”…,“tensorrt”,“ComputeCapability”…,“7.0”,“targetparams”…结构(“数据类型”,“INT8”…DataPath公司的,“image_dataset”…,“NumCalibrationBatches”,50)) |
创建一个 cfg = coder.gpuConfig (“自由”);cfg。TargetLang =“c++”; 设置最低计算代码生成功能,使用 cfg.GpuConfig。ComputeCapability =“7.0”;
创建一个 dlcfg = coder.DeepLearningConfig…(“cudnn”);dlcfg。数据类型=“int8”;dlcfg。DataPath公司=“image_dataset”;dlcfg。NumCalibrationBatches = 50;cfg。DeepLearningConfig = dlcfg; 使用 arg = {(224224 3“单一”)};codegenarg游戏参数…配置cfggooglenet_predict 有关更多信息,请参见深度学习预测与NVIDIA TensorRT图书馆。 |
一般选择 |
没有生成代码生成和构建一个makefile。例如, cnncodegen(净,“targetlib”…,“mkldnn”,“codegenonly”1); |
产生源代码没有调用make命令或构建对象代码,使用 cfg = coder.codeConfig (“自由”);cfg。GenCodeOnly = true;
|
指定编译的NVIDIA GPU计算能力。参数需要的格式 cnncodegen(净,“targetlib”…,“cudnn”,“ComputeCapability”,“7.0”); |
设置最低计算代码生成功能,使用 cfg = coder.gpuConfig (“自由”);cfg.GpuConfig。ComputeCapability =“7.0”; |
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。