主要内容

dlarray代码生成的限制

推荐使用

要生成代码,请使用dlarray(深度学习工具箱)函数,创建深度学习数组。例如,假设你有一个预先训练过的dlnetwork(深度学习工具箱)中的网络对象mynet.matMAT-file。为了预测这个网络的响应,在MATLAB中创建一个入口点函数®如代码所示。

函数a = foo(in) dlIn = dlarray(in)SSC的);持续的dlnet;如果isempty(dlnet) dlnet = code . loaddeeplearningnetwork (“mynet.mat”);结束dlA =预测(dlnet, dlIn);一个= extractdata (dlA);结束

限制

对于深度学习数组,代码生成有以下限制:

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

    函数out = foo() dlA = dlarray(ones(5,4)),SSC的);%fmt 'SSC'为常量. . .结束

  • 的数据输入dlarray对象必须是固定大小的。例如,dlarray国防后勤局不支持如下万博1manbetx一个大小可变的。

    函数dlA = foo() A = ones(5,4);coder.varsize (“一个”%'A'是可变大小的。国防后勤局= dlarray (,SSC的);%错误:不支持。万博1manbetx结束

  • 代码生成不支持创建万博1manbetxdlarray对象的类型coder.typeof函数具有指定的上限大小和可变尺寸。例如,

    函数dlA = foo() A = dlarray(ones(5,4)),“SC”);A_type =编码器。typeof (10 [5], [1 0]);%错误:不支持。万博1manbetx结束

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

    一个= dlarray((5、4),“SC”);A_type = coder.typeof(一个);

  • 代码生成报告不会显示该大小dlarray目的。大小始终显示为1 x1

    屏幕截图的样本报告生成器显示美元大小为1 × 1

  • 在MATLAB中,dlarray强制标签的顺序'scbtu'.这种强制消除了操作中的不明确语义,这种语义隐式地匹配输入之间的标签。这种行为在MEX代码生成期间被模拟。然而,对于独立的代码生成,如静态、动态库或可执行文件,数据格式遵循fmt论点的dlarray目的。结果,如果输入点函数的输入或输出是adlarray对象和它的标签顺序不是'scbtu',那么MATLAB环境下的数据布局和独立代码之间就会有所不同。

    例如,考虑一个函数喷火与一个dlarray对象作为输出。

    函数dla = foo()rng默认的dla = dlarray(兰特(5,4),“公元前”);结束

    在MATLAB中,国防后勤局4 (C)——- - - - - -5(b)

    dlA = 4(C) × 5(B)美元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

    对于独立代码生成,国防后勤局5(b)——- - - - - -4 (C)

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

另请参阅

对象

相关的例子

更多关于