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