主要内容

Dlarray代码生成的限制

推荐使用

对于代码生成,请使用Dlarray(深度学习工具箱)创建深度学习阵列的功能。例如,假设您有一个预计dlnetwork(深度学习工具箱)网络对象mynet.mat垫子。要预测该网络的响应,请在MATLAB中创建一个入口点功能®如本代码所示。

功能a = foo(in)dlin = dlarray(in,'SSC');执着的dlnet;如果isempty(dlnet)dlnet = coder.loaddeeplearningnetwork('mynet.mat');结尾dla =预测(DLNET,DLIN);a = extractdata(dla);结尾

限制

对于深度学习阵列,代码生成具有以下局限性:

  • 数据格式参数Dlarray对象必须是编译时常数。例如,

    功能out = foo()dla = dlarray(一个(5,4),,'SSC');%fmt'SSC'是恒定的。。。结尾

  • 数据输入到Dlarray对象必须是固定大小的。例如,DlarrayDLA不支持万博1manbetx一个是可变大小的。

    功能dla = foo()a =一个(5,4);coder.varsize('一个'%“ A”是可变尺寸的。dla = dlarray(a,'SSC');%错误:不支持。万博1manbetx结尾

  • 代码生成不支持创建万博1manbetxDlarray通过使用coder.typeof具有上限尺寸的功能和指定的可变尺寸。例如,

    功能dla = foo()a = dlarray(一个(5,4),,'SC');a_type = coder.typeof(a,[5 10],[1 0]);%错误:不支持。万博1manbetx结尾

    代码生成支持使用万博1manbetxcoder.typeof没有大小参数。例如,

    a = dlarray(一个(5,4),'SC');a_type = coder.typeof(a);

  • 代码生成报告s not display the size of theDlarray目的。大小总是显示为1x1

    样品报告生成器的屏幕截图显示Dlarray大小为1 by-1

  • 在Matlab,Dlarray执行标签的顺序'SCBTU'。该执法消除了操作中的模棱两可的语义,这些语义隐含地匹配输入之间的标签。在MEX代码生成期间,这种行为模仿。但是,对于独立代码生成(例如静态,动态库或可执行文件),数据格式遵循规范FMT争论Dlarray目的。一个s a result, if the input or output of an entry-point function is aDlarray对象及其标签顺序不是'SCBTU',然后数据布局将在MATLAB环境和独立代码之间有所不同。

    例如,考虑一个函数fooDlarray对象作为输出。

    功能DLA= foo() rng默认dla = dlarray(rand(5,4),'公元前');结尾

    在Matlab,DLA4(c)-经过-5 (B)

    dlA = 4(C) × 5(B) dlarray 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595

    对于独立代码生成,DLA5 (B)-经过-4(c)

  • 对于代码生成,Dlarray输入到预测方法的方法dlnetwork对象必须是单身的数据类型。

也可以看看

对象

相关示例

更多关于