主要内容

analyzeNetworkForCodegen

分析深度学习网络代码生成

    描述

    结果= analyzeNetworkForCodegen (分析深度学习网络用于代码生成和报告网络和层兼容性问题。网络必须是一个SeriesNetworkDAGNetwork,或dlnetwork对象。默认情况下,该函数根据一组默认的CPU和GPU深度学习库目标进行验证。

    例子

    ___= analyzeNetworkForCodegen (___名称,值分析深度学习网络用于通过使用一个或多个指定的选项来生成代码名称,值对参数。

    例子

    全部折叠

    本示例展示如何使用工具检查MobileNet-v2网络的代码生成兼容性analyzeNetworkForCodegen函数。

    你可以使用theanalyzeNetworkForCodegen函数,当针对各种CPU和GPU深度学习库目标时,可以确定网络和层兼容性问题。

    下载MobileNet-v2支持包金宝app

    此示例使用预先训练过的MobileNet-v2版本MobileNet-v2网络的深度学习工具箱™模型金宝app支持包。

    MobileNet-v2是一个53层的卷积神经网络。网络的预训练版本使用ImageNet数据库中的100多万张图像进行训练。预训练网络的图像输入大小为224 × 224,可以将图像分类为1000个对象类别,例如键盘、鼠标、铅笔和许多动物。

    mobilenetv2
    ans = DAGNetwork with properties: Layers: [154x1 nnet.cnn.layer.Layer] Connections: [163x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_Logits'}

    如果未安装MobileNet-v2网络支持包的深度学习工具箱模型,则该函数将在Add-On资源管理器中提供到所需支持包的金宝app链接。要安装支持包,请单击链接,然后金宝app单击安装

    分析网络代码生成

    运行analyzeNetworkForCodegen函数mobilenetv2,指定要分析的目标库。的analyzeNetworkForCodegen函数要求MATLAB®Coder™深度学习库接口GPU Coder™深度学习库接口金宝app支持包。要安装所需的支持包,请使用Add-On资源管理器金宝app。

    targetLibraries = {“cudnn”“tensorrt”“arm-compute-mali”...“arm-compute”“mkldnn”“没有”“cmsis-nn”};S = analyzeNetworkForCodegen(mobilenetv2,TargetLibrary = targetLibraries);
    金宝app支持LayerDiagnostics  _________ _________________________________________________________________________________________________________________________________________________________________________________ cudnn“是的”“tensorrt“是的”“arm-compute-mali“是的”“arm-compute“是的”“mkldnn“是”“”没有“不”“发现1不支持的层类型(s)。查看不兼容的层类型" cmsis-nn "No" "发现6个不支持的层类型。金宝app查看不兼容的层类型。”

    要访问CMSIS-NN目标的分析结果,使用以下命令。

    disp (S (7))
    TargetLibrary: ' cmis -nn'金宝app支持:0 NetworkDiagnostics: [0x0 table] LayerDiagnostics: [150x3 table] IncompatibleLayerTypes: [6x1 string]

    显示CMSIS-NN代码生成不支持的层类型。金宝app

    (7)。IncompatibleLayerTypes
    ans =6 x1字符串"AdditionLayer" "BatchNormalizationLayer" "ClippedReLULayer" "Convolution2DLayer" "GlobalAveragePooling2DLayer" "GroupedConvolution2DLayer"

    输入参数

    全部折叠

    网络分析,用于代码生成。网络可以是一个SeriesNetworkDAGNetwork,或dlnetwork对象用于自定义训练循环或自定义修剪循环。

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

    在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

    例子:resultStruct = analyzeNetworkForCodegen(mobilenetv2, TargetLibrary = ["mkldnn", "none"]);

    用于深度学习代码生成的目标库,指定为本表中的值之一。

    价值 描述
    “没有”

    用于生成不使用任何第三方库的代码。

    “arm-compute”

    用于生成使用ARM的代码®计算库。

    “mkldnn”

    用于生成使用英特尔的代码®深度神经网络的数学内核库(Intel MKL-DNN)。

    “cmsis-nn”

    通用单片机软件接口标准-神经网络(CMSIS-NN)库。

    要求MATLAB®Coder™深度学习库接口

    “cudnn”

    用于生成使用CUDA的代码®深度神经网络库(cuDNN)。

    此选项需要GPU Coder™。

    “tensorrt”

    用于生成利用NVIDIA的代码®高性能深度学习推理优化器和运行时库。

    该选项需要GPU Coder。

    标量布尔值抑制报表显示。默认情况下,该函数以详细模式显示分析结果。

    输出参数

    全部折叠

    检查深度学习网络代码生成兼容性的结果,返回为1——- - - - - -N结构,N要检查的目标库的数量。

    版本历史

    R2022b中引入