dlarray
代码生成的限制对于代码生成,请使用dlarray
(深度学习工具箱)函数创建深度学习数组。例如,假设你有一个受过训练的dlnetwork
(深度学习工具箱)中的网络对象mynet.mat
MAT-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
.
在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
对象必须是单
数据类型。