主要内容

dlarray代码生成的限制

推荐使用

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

函数a = foo(in) dlIn = dlarray(in,SSC的);持续的dlnet;如果dlnet = coder.loadDeepLearningNetwork()“mynet.mat”);结束dlA = predict(dlnet, dlIn);一个= extractdata (dlA);结束

限制

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

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

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

  • 的数据输入dlarray对象必须是固定大小的。例如,dlarray国防后勤局不支持为金宝app一个大小可变的。

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

  • 代码生成不支持创建金宝appdlarray对象的类型coder.typeof指定上限大小和变量尺寸的函数。例如,

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

    代码生成支持使用金宝appcoder.typeof没有size参数。例如,

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

  • 代码生成报告不显示dlarray对象。大小总是显示为1 x1

    显示dlarray大小为1乘1的示例报告生成器的屏幕截图

  • 在MATLAB中,dlarray强制标签的顺序“SCBTU”.这种强制消除了操作中的模糊语义,这些操作隐式地匹配输入之间的标签。这种行为是在生成MEX代码时模仿的。但是,对于独立的代码生成(如静态、动态库或可执行文件),数据格式遵循fmt论点的dlarray对象。因此,如果入口点函数的输入或输出是adlarray对象及其标签的顺序不是“SCBTU”,那么数据布局将不同的MATLAB环境和独立的代码。

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

    函数dlA = foo() rng默认的国防后勤局= dlarray(兰德(5、4),“公元前”);结束

    在MATLAB中,国防后勤局4 (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

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

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

另请参阅

对象

相关的例子

更多关于